home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1997 March
/
CHIP Mart 1997.iso
/
prg
/
Modemdr
/
MDR52DOC.TXT
< prev
next >
Wrap
Text File
|
1993-06-02
|
165KB
|
4,159 lines
__________________________________________________
T H E
M O D E M
D O C T O R
Version 5.2S / 5.2R
Hank Volpe copyr. 1989,1990,1991,1992,1993
P.O. Box 43214
Baltimore MD 21236
__________________________________________________
What's New . . . . . . . . . . . . . . . . . . . . . . . . . . . Page 3
Forward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page 4
Section 1. Introduction . . . . . . . . . . . . . . . . . . . . . Page 5
Section 2. Starting MDR . . . . . . . . . . . . . . . . . . . . . Page 7
The /B switch . . . . . . . . . . . . . . . . . . . . . . . Page 7
The /Q switch . . . . . . . . . . . . . . . . . . . . . . . Page 8
The /S switch . . . . . . . . . . . . . . . . . . . . . . . Page 8
The /X switch . . . . . . . . . . . . . . . . . . . . . . . Page 8
The /F switch . . . . . . . . . . . . . . . . . . . . . . . Page 9
Section 3. First Time Setup . . . . . . . . . . . . . . . . . . . Page 10
A. Test Modem/ Uart . . . . . . . . . . . . . . . . . . Page 12
B. Uart Tests . . . . . . . . . . . . . . . . . . . . . . . Page 14
C. Return to main menu . . . . . . . . . . . . . . . . . . . Page 15
Section 4.0 The Main Menu . . . . . . . . . . . . . . . . . . . . Page 15
4.01 Hot-Key selection . . . . . . . . . . . . . . . . . . Page 15
ALT-F . . . . . . . . . . . . . . . . . . . . . . . . . Page 15
ALT-T . . . . . . . . . . . . . . . . . . . . . . . . . Page 16
ALT-H . . . . . . . . . . . . . . . . . . . . . . . . . Page 16
4.1 Login In Comm ports . . . . . . . . . . . . . . . . . . Page 16
4.11 What do IRQ's and COMM Ports do ? . . . . . . . . . . . Page 16
4.12 Port assignments and their meaning . . . . . . . . . . Page 17
4.13 Testing defective Ports . . . . . . . . . . . . . . . Page 19
4.2 Regs . . . . . . . . . . . . . . . . . . . . . . . Page 19
Line Control Register . . . . . . . . . . . . . . . . . Page 20
Line Status Register . . . . . . . . . . . . . . . . . Page 20
Modem Control Register . . . . . . . . . . . . . . . . Page 21
Modem Status Register . . . . . . . . . . . . . . . . . Page 22
Interrupt ID Register . . . . . . . . . . . . . . . . . Page 23
Interrupt Enable Register . . . . . . . . . . . . . . . Page 24
Interrupt Mask Register . . . . . . . . . . . . . . . . Page 25
4.30 Handshaking tests . . . . . . . . . . . . . . . . . . . Page 25
4.30A S-Register Displays . . . . . . . . . . . . . . . . . Page 26
4.31 Carrier Tests . . . . . . . . . . . . . . . . . . . . Page 26
4.31 Modem Driver Modules . . . . . . . . . . . . . . . . . Page 27
4.32 Types of Carrier Tests . . . . . . . . . . . . . . . . Page 28
4.33 AT Instruction Set Tests . . . . . . . . . . . . . . . Page 28
4.34 Uart or Dumb Modem Tests . . . . . . . . . . . . . . . Page 29
4.35 Error Messages . . . . . . . . . . . . . . . . . . . . Page 30
4.36 IRQ Failures . . . . . . . . . . . . . . . . . . . . . Page 30
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
4.4 Loopback Tests . . . . . . . . . . . . . . . . . . . . . Page 31
4.41 Loopback Test Error messages . . . . . . . . . . . . . Page 32
4.5 Options Mode . . . . . . . . . . . . . . . . . . . . . . Page 33
4.51 Interactive Mode . . . . . . . . . . . . . . . . . . . Page 33
ALT-B . . . . . . . . . . . . . . . . . . . . . . . . . Page 33
ALT-C . . . . . . . . . . . . . . . . . . . . . . . . . Page 33
ALT-N . . . . . . . . . . . . . . . . . . . . . . . . . Page 33
ALT-R . . . . . . . . . . . . . . . . . . . . . . . . . Page 33
ALT-H . . . . . . . . . . . . . . . . . . . . . . . . . Page 33
ALT-X . . . . . . . . . . . . . . . . . . . . . . . . . Page 33
4.51A Testing for Interrupt Latency . . . . . . . . . . . . Page 34
4.52 View Current Statistics . . . . . . . . . . . . . . . . Page 34
4.53 Print Current Statistics . . . . . . . . . . . . . . . Page 34
4.54 Reset Current Statistics . . . . . . . . . . . . . . . Page 34
4.6 Setup Mode . . . . . . . . . . . . . . . . . . . . . . . Page 35
Mdr Color Selection Screen . . . . . . . . . . . . . . Page 35
4.7 Exit Program . . . . . . . . . . . . . . . . . . . . . . Page 36
5.0 Error Messages and their Meanings . . . . . . . . . . . . . . Page 36
General Program Errors or Warnings . . . . . . . . . . . . . Page 36
Setup Mode Diagnostics . . . . . . . . . . . . . . . . . . . Page 37
Uart diagnostics . . . . . . . . . . . . . . . . . . . . . . Page 40
Report Generator Messages . . . . . . . . . . . . . . . . . Page 41
Static DTR/DSR RTS/CTS . . . . . . . . . . . . . . . . . . Page 41
Carrier and Dynamic tests . . . . . . . . . . . . . . . . . Page 42
General program warnings . . . . . . . . . . . . . . . . . . Page 43
Section 6. Special Modes and Information . . . . . . . . . . . . Page 47
6.1 Using Modem Drivers . . . . . . . . . . . . . . . . . . Page 47
6.11 External Modem Drivers . . . . . . . . . . . . . . Page 48
6.2 Using the Command Line Mode switch /S . . . . . . . . . Page 49
6.3 Using the Hot-Keys . . . . . . . . . . . . . . . . . . Page 50
ALT-B Change Baud rate . . . . . . . . . . . . . . . . Page 50
ALT-C Clear Screen . . . . . . . . . . . . . . . . . . Page 50
ALT-F Force Microprocessor . . . . . . . . . . . . . . Page 51
ALT-H Help . . . . . . . . . . . . . . . . . . . . . . Page 51
ALT-R Register Display . . . . . . . . . . . . . . . . Page 51
ALT-X Exit Mode . . . . . . . . . . . . . . . . . . . . Page 51
Control -Break . . . . . . . . . . . . . . . . . . . . Page 51
6.4 Logging in Defective Ports . . . . . . . . . . . . . . Page 51
6.5 What tests cannot Do . . . . . . . . . . . . . . . . . . Page 53
6.6 Quirks with Some Modems . . . . . . . . . . . . . . . . Page 53
6.7 Buffered vs Direct Connect Modems . . . . . . . . . . . Page 54
Section 7. Benefits of Registration . . . . . . . . . . . . . . . Page 54
Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page 55
Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . . . Page 55
Modem Doctor History . . . . . . . . . . . . . . . . . . . . . . Page 56
Page 2
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
All of the documentation text contained in this file is copyrighted 1989-
1993 by Hank Volpe. This file is the technical reference manual that
accompanies the Modem Doctor. This manual has been written for the expert
user who would like to have background information on how the Modem Doctor
conducts its various tests. It also catalogs the many error messages and
their meanings, explains some of the mnemonics used in testing, and
contains a brief history of the different versions of the program.
Distribution of this text without the Modem Doctor shareware version and
its support files is prohibited by the author.
-------------------------------------------
What's New in Modem Doctor Version 5.2
-------------------------------------------
For those of you familiar with Modem Doctor, here is a brief look at the
improved and added features of version 5.2. If you are new to Modem
Doctor, take a look at the users manual file (MDRFIRST.TXT) that
accompanies your Modem Doctor package.
1) Screen presentations have been enhanced to make it easier to spot
potential problems and areas of concerns.
2) Login in and Startup sequence.
Modem Doctor now finds, identifies, and verifies interrupts from all comm
ports under test. A new interrupt selection window has also been added, even
though Modem Doctor automatically displays the correct IRQ line. Note: It may
not be desired to verify interrupts in all computer environments. For those
special situations, a new switch /Q has been added. Using /Q will defeat
the IRQ verification routines. For more info, see the section about switches
later in this document.
3) Regs- The ability to read and modify any S-register exists in a pulldown
menu. I cannot give all registers names, because there is such a discrepancy
between modem vendors.
4) Carrier and Loopback
The previous incarnation of the C language had a problem with properly
running delays on machines with system clocks greater than 33 megahertz. As a
result, the timer-tick routines did not accurately count 1 second intervals
on these machines. As a result, I have new code installed to detect proper
timing sequences.
5) Interactive mode now has a new test for interrupt latency. You can vary
the amount of time that Modem Doctor stays in a loop waiting for characters,
thus confirming if the speed of your display adapter is causing a
communication problem.
Page 3
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
6) FOSSIL and INT 14 support
A new primitive module has been added that works with FOSSIL drivers, and INT
14 kernels. I know it doesn't make much sense to put a kernel in the way of a
testing program, but then again, it does extend what Modem Doctor can do. To
start in this mode, type mdr /f. It will automatically find a driver or
report what it can or can't do. Important to note. The Fossil driver
determines if a port gets fossil support or INT 14 support. The FOSSIL driver
must be loaded to support the desired number of ports, otherwise Modem Doctor
grabs the first port and makes it the FOSSIL supported port, making any
others supported by INT 14.
7) A new "heads-up" display shows you the status of all your serial ports,
handles and identifies Mircosoft Compatible mouse drivers, allows easy
control over interrupt lines, and adds new built-in modem drivers.
8) A new Hot-Key to select or disable transmitter-driven interrupts. Some
Uarts, most notably early 8250's, have a problem with transmitter interrupts.
With this feature enabled, you can test your chips ability to handle high-
speed interrupts, and if errors are detected, you can switch this feature off
and test again.
Forward
-------
Welcome to the Modem Doctor. This documentation along with the program is
a good source of information about how Uarts and Serial Ports work with
Modems in your Personal Computer.
There are two versions of the Modem Doctor; The shareware version 5.0S and
the registered Version 5.0R. There are some differences between the two.
Both however are full-functioned diagnostics tools. The differences
between the two are as follows;
Version 5.2S & 5.2R supports COM1 through COM8
Version 5.2R allows custom port selections
Version 5.2S supports speeds to 2400 bps
Version 5.2R supports speeds to 57,600 bps
Version 5.2S does not include Manual Log-in of Comm ports, the
Digital or the Analog Loopback testing, or any of the dynamic
handshaking tests supported in version 5.2R, or the /s or /x
command-line modes of operation.
This documentation covers both versions, however the feature differences
above are provided for your reference.
This manual is provided as a technical reference for advanced users or for
those wishing to get more background information on tests. For first time
Page 4
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
users I would suggest reading the Getting started Manual text file
MDRFIRST.TXT, which is a little more basic in its approach.
I sincerely hope that you take a good look at the program and the
documentation. The Modem Doctor is about as complete a diagnostic tool you
can find for your serial port and modem. A complete program history
follows the documentation. The Modem Doctor versions 2.2, 3.0 , and 4.0 were
received very well nationally and internationally, Version 5.0 now adds
more tests, more user features and more flexibility for you to use. Thanks
to those that have registered and have made the Modem Doctor a viable
package for all of us that sincerely enjoy using modems.
If you are using the shareware version and wish to order, please use the
Order form included with this package or see Section 7, Benefits of
registration at the end of this documentation. You can always get the latest
version of Modem Doctor from the Modem Doctor BBS (410-256-3631, 24 hrs,
speeds to 16.8kbps). There is no requirement to register Modem Doctor in
order to use the BBS or to have your questions answered. Access is easy, and
downloads are available on the first call for many hard-to-find shareware
communication utilities.
Section 1. Introduction -
-------------------------
The Modem Doctor is a professional diagnostic tool designed to work with
IBM-PC's and compatibles. There are two versions of the Modem Doctor, the
shareware version and the registered version. The registered version of
the Modem Doctor contains complete diagnostics for 8250-B, 8250-A, 16450,
16550, 16550A(x), and compatible Uarts, RS-232 data lines, and carrier
tests. Some of the many diagnostic features of the registered version are;
** Support for COM 1 through COM 8 using system IRQ's 2,3,4,5 or 7.
** Baud Rates from 300 to 57600 bps
** Support for Courier HST/Dual Standard/V.32 Modems [+],
Hayes 1200, 2400, Ultra and V9600 series Modems [+*],
ZyXEL, Practical Periperals, Intel, and Sierra Semiconductor
modems. A Generic Driver is provided for all others.
** Auto-detection of modems that use &T0 (CCITT V.54) diagnostics
** Auto log-in of COMM ports 1 - 4 to DOS for use by other programs.
** Manual log-in of up to 8 COMM ports for non-standard hardware,
including those with defective Uarts (on manual selection).
** On-screen display of all 8250 /16450/ 16550 Uart registers.
** On-screen display of modem S-Registers.
** Full Diagnostic tests of Uart and RS-232 Channels including;
-- ALL Uart registers.
-- ALL RS-232 handshaking Signals.
-- 8259 Interrupt Controller mask registers
Page 5
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
-- Digital loopback Uart tests including chips with Tri-stated
OUT2 signals.
-- Analog loopback data tests.
** Full diagnostic checks of "AT" instruction set modems;
-- Carrier tests on both originate and answer frequencies.
-- Carrier test interface for "dumb" modems or data channels.
-- Modem microprocessor command channel diagnostics.
-- Support for high speed modems.
-- Support for modems that use the alternate &T0 self test mode.
-- Dynamic simulated on-line testing of RTS/CTS and XON/XOFF
handshaking.
-- Static DTR/DSR and RTS/CTS uart handshaking tests.
-- Ability to display any S-Register pairs
** Interactive Mode with 16K communications buffer for;
-- TTY mode interactive communications over serial port or modem
while on-line.
-- Interrupt latency test, you can use this to determine if your
display adapter is too slow for your high-speed modem.
-- Custom designed tests...help menu included.
-- On-line "Hot-key" viewing of 8250 Uart registers.
** Hot-Keys for selecting the baud rate, to force a modem
microprocessor test mode, and to enable/disable transmitter
driven interrupts.
** User Selection of modem drivers. Like printer drivers, these
software modules add more selections and more test capability to
The Modem Doctor.
** Ability to use external modem drivers. External modem drivers
make it possible to add special modems that might not use
standard AT conventions to the Modem Doctor without you having
to update to a new version of the program.
** Built in report generator that displays the results of all tests run
on all serial ports and modems. Report can be printed at any
time and reset at any time by the user.
** Status bar that continuously displays the port, speed,
microprocessor status, Transmitter Interrupt enable status
and modem driver selections.
** User defined Colors for all screens
** Compatibility with mouse drivers. Mouse drivers also properly
enabled after exiting Modem Doctor.
** Command Line Mode interface for setting up a modem to an
initialization string contained in a user created file;
-- A small text file contains the port (and optional address), the
speed, and the string to send to the modem. Any text editor can
create the file at any time!
** Automatic detection of incorrect Com1 and Com2 port assignments,
IRQ assignment errors, missing IRQ signals, and missing handshake
signals.
The Modem Doctor and all of its documentation is copyrighted by Hank
Page 6
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
Volpe. The shareware version of this program may be distributed on
not charged for its duplication or acquisition (except for BBS systems
that charge a user fee for system access). If you are a shareware
distributor and have received permission to distribute past versions of
the Modem Doctor, you are granted permission also for version 5.2 as long
as you follow the same guidelines for distribution as before. Under
no conditions can anyone accept payment for the Modem Doctor but Hank
Volpe or agents authorized for resale by Hank Volpe. The Modem Doctor is
distributed on as "as-is" basis, with no warranties for usefulness or
suitability expressed or implied. Users of the shareware version are
granted a limited license to use this program for a trial period only.
Please let your conscience be your guide as to what you believe has been a
fair trial period, for without the support of users who have registered,
the Modem Doctor would not be the product that it is today.
The Modem Doctor is a very flexible package for both the new user and for
the experienced technician. The focus of this manual is to give you a
technical reference regarding how the Modem Doctor works, what is the
meaning of error messages you may encounter, and how the tests are
constructed to operate between your PC and your modem. First time users or
those unfamiliar with how the Modem Doctor operates should read the file
MDRFIRST.TXT. MDRFIRST explains how to start and use the Modem Doctor, how
the pulldowns operate, and how to use the menu and control system.
Section 2. Starting MDR
------------------------
The Modem Doctor has been designed to work with PC-Type serial ports and
"AT" instruction set (so called Hayes compatible[++]) modems. The Modem
Doctor requires at least 1 serial port to operate. MDR is written to run
under MS or PC DOS 2.2 or higher, and will work with any standard display
adaptor in normal text mode. The program requires at least 200K of program
memory space. When MDR is started, it will use the last text mode that the
display adaptor was in before the Modem Doctor started. If you have
created a custom color file (see Options mode), your screen colors will be
displayed as you selected them. If not, default colors will be loaded
depending on the mode you are currently in (Color or Black /White).
Modem Doctor starts just like any other program. From the dos prompt, type
MDR. There are however several command line switches you might need to use
from time to time.
The /B switch
-------------
Code has been included to work with hardware-incompatible display adapters
as long as they are at least IBM-PC Bios compatible. For most computers,
this is not necessary and will slow down screen displays, plus it will
change the appearance of the input windows. The reason for using this
switch is (for example), if you wish to route the output of the program
through a voice synthesizer or operate it under a program that requires
all screen writes to go through your Bios. If you wish to use this bios
Page 7
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
compatible mode instead of direct display writes, start the program using
the Bios switch ; MDR /B
Page 8
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
The /Q switch
-------------
Version 5.x includes new tests to verify the accuracy of IRQ settings. However
this self-testing might not be desirable in some computer environments. The
/Q switch makes it possible to defeat this self test of IRQ assignments. Using
/Q, Modem Doctor will report "Standard Assignments" and not verify the
proper configuration of IRQ settings. Use this switch if you experience
a "freeze-up" of the program at the inital sign-on screen. To bypass IRQ
verification, start the program with the IRQ switch MDR /Q
The /S switch
--------------
Registered versions 4.0 and higher also can be run to quickly program and
setup a Modem. To use this mode start the program with the setup switch ;
MDR /S (see Section 3).
The /X switch
--------------
Registered versions 4.0 and higher have the ability to swap the
communication pointers for COM1 and COM2 in memory. To use this mode, type
MDR /X. Com1's pointer will be swapped to COM2 (and visa versa). You can
specify any one of the 4 comm ports used by dos by typing;
MDR /X [port] [port],
where each [port] is a different comm port..ie to swap Com1 and Com3, type
MDR /X 1 3. MDR /X without port numbers flips com1 and com2 by default. This
condition is not permament. To flip these again, just type MDR /X or if you
used comm numbers, type MDR /X [port] [port]. The reason for this command
line switch is for convienence and also to make it easier for technicians to swap
port assignments without having to change port jumpers. This mode is not generally
useful except when you believe you have addresses set incorrectly or if you wish
to use a serial device that is normally Com2 as Com1 (such as a serial printer)
from a high-level language that does not support 2 comm ports. These changes are
temporary. Permanent fixes can only be done in these cases if you physically change
the addresses on your serial card.
Page 9
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
The /F switch
-------------
Normally, Modem Doctor and most comm programs directly control the hardware
of your computer. Uart registers, interrupt controllers, and system hooks are
all involved. Another way to perform control in a machine-independant way is
by using kernels. Kernels are small programs that reside as TSR's (Terminate
Stay Resident) in your computer. You can instruct Modem Doctor to operate in
this manner, and instead of assuming complete control over your system, Modem
Doctor will work through system kernels. X00 and BNU are two such kernel or
FOSSIL programs. If you use Modem Doctor in this manner, some uart
programming and error trapping is not possible (because the FOSSIL drivers do
not support function calls to handle all test conditions). However, this
command can be useful if you wish to test the proper operation of a FOSSIL
driver in your system. Other Int14 type kernels are also supported. To start
Modem Doctor in this mode, type MDR /F.
Page 10
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
Section 3. First Time Setup
---------------------------
The first time you start the Modem Doctor, it will begin several system
checks. These checks are not repeated until you start the program over
again from the Dos prompt. First, the Modem Doctor checks to see what
hardware is available and reports its results to you. Displayed on the
bottom line is the serial number unique to each copy (registered version).
If incorrect COMM addresses are detected or if swapped addresses are
detected, an Alert-bar will be displayed, warning you that a non-standard
assignment was detected, and you are asked if you wish to have this fixed
for testing purposes only.
┌───────────────────────────── The Modem Doctor─────────────────────────────┐
│ Welcome to the Modem Doctor │
└───────────────────────────────────────────────────────────────────────────┘
╒[ Modem / Uart Hardware Detection]══════════════════════════════════╕
│ Port assignments Base(hex) Irq Special Port Usage │
│ Com port 1 [ ] 3f8 4 │
│ Com port 2 [ ] 2f8 3 IRQ assigned to a mouse driver│
│ Com port 3 [ ] not found │
│ Com port 4 [ ] not found │
│ Com port 5 [ ] │
│ Com port 6 [ ] │
│ Com port 7 [ ] │
│ Com port 8 [ ] │
└────────────────────────────────────────────────────────────────────┘
╔[ Serial Port Detection ]═══════════════════════════════════════════════╗
║ Serial port detection ║
║ Searching for other standard active Comm ports ║
║ ║
║ Total Comm ports =2 ║
║ PRESS ANY KEY TO START TESTING ║
║ ║
║ ║
║ ║
══════════════════════════════════════════════════════════════════════════╝
Modem Doctor 5.0 uses a heads-up display that shows you the Comm port
assignment number, the base i/o address, and the interrupt line in use.
Unlike previous versions, Modem Doctor actually creates a system interrupt
and traps its ID. Running under DOS, Modem Doctor will always identify the
correct IRQ line. In multi-tasking situations, this test may not be valid,
which is why a new window has been created to allow you to easily select any
IRQ line you wish to use.
Page 11
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
╔[ Ports ]═╗ ╔[ IRQ's ]═╗ ╔[ Baud ]══╗
║ Use COM 1 ║ ║ Use IRQ 2 ║ ║ 300 BPS ║
║ Use COM 2 ║ ║ Use IRQ 3 ║ ║ 1200 BPS ║
╚════════════╝ ║ Use IRQ 4 ║ ║ 2400 BPS ║
║ Use IRQ 5 ║ ║ 4800 BPS ║ *
║ Use IRQ 7 ║ ║ 9600 BPS ║ *
╚════════════╝ ║ 19200 BPS ║ *
║ 38400 BPS ║ * Registered Versions
║ 57600 BPS ║ * only
╚════════════╝
Next, you are instructed to pick from a list of valid Comm ports. The only
ports that are listed are valid ports that MDR found when it first
started. The registered version allows you to add ports that are not
"standard" ports, (check the section on Login). Use the arrow keys to find
your selection, and then press return to select.
A window now opens showing you your IRQ line choices. The sliding bar will
pick the IRQ line Modem Doctor found valid during the first set of tests. You
can change this to any IRQ line you wish. A note of caution though, if you
pick an incorrect IRQ line, the following tests will not be valid.
A window now opens showing you valid Comm port speeds. Select a speed from
this menu. Please note, don't select a speed faster than your modem can
handle. The reason for faster speeds is so communication links can also be
tested. Use the arrow keys and press return to make your selection.
At this point you are in the options menu. If you select "Test Modem", a
series of commands and tests will be performed. Please check to make sure
the modem is on line and running. If you select "Test Uart Hardware", only
the Uart will be tested. The modem will not be setup. This selection is
useful only if you wish to test an RS-232 line or a "dumb" modem.
Selection 3 aborts to the main menu. (NOTE: Version 5.0 includes "hot-
keys" to force the Modem Doctor to believe you are using a modem with a
microprocessor and for changing the baud rate. Read Section 4 on the menu
system for more details).
Page 12
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
A. Test Modem/ Uart
---------------------
╒[ Modem / Uart System Diagnostics]══════════════════════════════════╕
│ Comm port /IRQ in use [ ] Port = 1 Address = 3F8 IRQ = 4 │
│ Int 14 interface [ ] Inactive │
│ Uart type [ ] 16450/8250A detected │
│ Baud rate selected [ ] 2400 │
│ Baud Rate reg test [ ] Confirmed correct baud rate │
│ Modem Microprocessor [ ] Modem Microprocessor On-Line │
│ Modem ID Type [ ] 9600 bps modem │
│ Modem Memory/Rom [ ] Memory tests OK │
└────────────────────────────────────────────────────────────────────┘
╒[ Diagnostic Dialog]═══════════════════════════════════════════════════════╕
│ Preliminary diagnostic checks of hardware │
│ ----------------------------------------- │
│ Confirmed uart setup to proper baud rate │
│ Testing Modem Microprocessor │
│ -------------------------- │
│ │
│ Modem microprocessor command bus active │
│ Modem ID reports a 9600 bps modem installed │
│ Modem microprocessor memory tests OK │
│ Modem microprocessor accepts setup commands │
│ Modem - Uart status appears correct │
│ Press any key to see register status and diagnosis │
│ │
└───────────────────────────────────────────────────────────────────────────┘
The preceding page shows you the results of a normal test with a modem.
The first step tests the uart to modem hardware. If any connection errors
are discovered, they are reported to the screen. If no errors are
detected, the Modem Doctor will check to see what type of uart is
installed.
There are differences between the different types of uarts, and
the Modem Doctor uses this test to determine how to test the uart and what
registers to display to the screen. Next, the uart is set to the desired
baud rate, and the uart speed register is queried to make sure it did set
up properly. Next, the modem command bus is tested and if its compatible,
the modem ID information is queried from the modem microprocessor. The
Modem Doctor then issues a command that forces the modem to run a checksum
of its ram or rom memory. If your modem returns an OK, then the Modem
Doctor assumes your modem passed properly. If an error is returned, you
will receive an error message stating that the modem reported a rom/ram
check failure. Finally, the modem is setup for diagnostics. Note: These
setup strings do not overwrite any non-volatile storage.
Page 13
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
If your modem setup properly, all the uart registers and the First 16
Modem S registers are displayed. This display is not shown the next time
you log in a Comm port unless you press the space bar. If the modem does
not respond to certain parts of the tests, error messages are reported.
Testing Modem Microprocessor
----------------------------
Modem Microprocessor Command Mode Not Detected
Software Reset Initiated
This message is displayed if the modem did not respond the first time for
a query to its status. This could happen for any number of reasons,
including that the modem was still on-line and not in the command mode. A
soft-reset is performed, which essentially tries to wake the processor up.
No Response...resetting Modem Microprocessor ...attempt #1
No Response...resetting Modem Microprocessor ...attempt #2
No Response...resetting Modem Microprocessor ...attempt #3
After 3 soft-resets, the Modem Doctor assumes that the modem is jammed and
needs a hardware reset. A hardware reset is the program equivalent of
turning the modem on and off again. This is the only way to reset some
internal modems that get "jammed" when the computer is first turned on.
Clearing a "jam" usually takes no more than 2 attempts.
Trying Hardware reset of the Modem Microprocessor
The Hardware reset is performed, and again the modem microprocessor is
strobed for its status.
Software Reset Initiated
After a hardware reset, a soft reset is performed again, attempting to
wake the processor up. If this fails, the following message is displayed;
Modem Microprocessor Did Not Accept Setup Commands
Trying a Hardware reset of the Modem Microprocessor
After one more attempt at waking the modem up, the Modem Doctor assumes
that the modem is not compatible and based on the status given it by the
Uart, it will report if the device is off or not connected.
WARNING..This unit does not have a Compatible Modem attached
WARNING..The Modem Device appears to be off or not connected
Page 14
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
The registers are now displayed for diagnostic tests, and a conclusion
based on the status of the registers is displayed. There are many reasons
why the modem/uart could fail. See the error code section for details. If
the Uart is fine, but the modem is not compatible, the program will tell
you that the Uart hardware tests ok and display this in a window to the
right of the register display.
Note: The reason for testing the modem command set so extensively is so
there can be no doubt about the modem accepting commands. You can force
The Modem Doctor to believe it has a modem with a compatible
microprocessor by using the hot-key Alt-F. See Section 4 about Menu system
commands.
B. Uart Tests
---------------
The uart test is performed every time either the modem or the uart test is
selected. Essentially, the uart test programs all of the registers of the
uart and looks to see that the correct values have been placed in them. If
any one of the registers fails to set, the Modem Doctor will display all
of the registers and a diagnostic message. After that, it looks to see
that an RS-232 loop is active. If not, it displays an error message saying
that the loop is either disconnected or a register in the uart is
defective. If all checks well, the type of uart chip that is installed is
returned. The type of uart chip is important for the way the Modem Doctor
will test and display the uart. Essentially there are 3 types it can
detect;
8250-B
This is the original uart installed in many PC's and serial port add-on
cards.
16450/8250-A
This is an upgraded uart that fixes a bug in the interrupt enable register
of the 8250-B and also tri-stated the OUT2 pin of the chip during
loopbacks. It also adds a scratch-pad register as the highest register.
This register is tested by the Modem Doctor but not displayed because it
never has what you would consider as a "correct" setting. The 16450 is
used primarily in 80286 (AT) systems.
16550
This chip is essentially a faster 16450. However, it cannot be used in a
FIFO buffering mode, but it does allow for a programmer to use multiple
DMA channels and thus increase throughput on an AT or higher class
computer system.
Page 15
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
16550A(x)
This chip is a faster 16450 with a built in transmit and receive FIFO
buffer. It also allows multiple DMA channel access. You should see this
chip in your 80386 or RISC type machine. You should also consider
installing this chip if you do any serious communications at 9600 bps or
higher while you are multi-tasking. Whenever a 16450,16550 or 16550AN is
displayed, different diagnostics and/or different register mnemonics are
displayed. The 16550AN's ability to enable and disable FIFO mode is also
tested. In any case and with any uart, each register is checked for proper
values. If anyone of them fail, a window will open and display a possible
cause for the problem.
Preliminary Diagnostic Checks of Hardware
-----------------------------------------
Testing Uart Hardware Only
--------------------------
A 8250-B Uart has been detected
Modem - Uart Status appears correct
The first time through these tests, the registers will display for
diagnostics. Unlike the modem tests, only the uart registers are
displayed. From then on, if the test results are correct, you will be
prompted if you wish to have the registers displayed. If a test fails at
any time, you will always see the registers displayed along with an
appropriate diagnostic message.
C. Return to main menu
----------------------
Selecting this returns you to the main menu, this allows you to change an
entry made in error without having to wait for the diagnostic checks to
fail. In any event, after any of these tests have been run, you will then
enter the Modem Doctor's Main Menu.
Section 4.0 The Main Menu
-------------------------
The main menu consists of a sliding bar from which you make your selections.
Using the arrow keys you slide left or right. Pressing ENTER selects a
feature. If the feature has a pulldown window, you use the up or down arrows
to navigate, and then ENTER to select that feature.
4.01 Hot-Key selection
----------------------
In addition to these menu selections, there are three hot-keys that are
active at nearly all times in the Modem Doctor. The ALT-B combination can
be used to change the baud rate from the main menu, from inside pulldowns
and Manual test section. A window will pop-up and you can pick your
desired serial port speed. This can save a lot of time when you wish to
test a modem at various speeds. Using the Setup / Test Modem & Uart
Page 16
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
mode is the safest way (because it verifies the modem microprocessor
accepts commands properly at the selected speed), however if you use the
ALT-B command, you will take a short-cut that can help you when testing
your modem.
The next hot-key is ALT-F, or FORCE Micro on-line. Actually, there is no
"force" involved. By pressing this key, you make the Modem Doctor believe
there is a AT Instruction set compatible modem attached. This can be handy
for troubleshooting a modem that doesn't work properly at certain speeds
or under certain conditions. The Setup Test Modem & Uart section will not
allow any AT Instruction set Carrier tests on modems that it cannot
properly setup. The ALT-F combination bypasses this and allows such
testing. When you press ALT-F, you will notice the Status Bar will say
that a modem microprocessor is on-line. Version 4.0 now allows this key
to be operated as a toggle between on-line and off-line. This key is
active inside of any menu at any time.
Another hot-key is ALT-T. This is new with Modem Doctor 5.0. It allows you to
toggle how Modem Doctor treats the transmission of characters. Most times,
interrupt driven transmissions are used because they are fast, waste no CPU
time looping, and give the best throughput. However, some early 8250 uarts
cannot handle interrupt-driven transmits without errors. When you start Modem
Doctor, transmit-driven interrupts are enabled. If you experience errors
during tests, try disabling this feature. If your errors go away, you either
have a uart that cannot handle interrupt-driven transmit routines, or your
system is too slow to process and support this feature.
The last hot-key is the ALT-H for help. This key will give you varying
levels of help. From the main menu, it gives a terse help just like
pressing the down arrow key does. Inside of a pulldown, it gives you
expanded help, just as selecting the appropriate help section of the
pulldown also does.
4.1 Login In Comm ports
-----------------------
When you select this menu, you are offered these choices
╔[ Comm Port Login ]═══════════╗
║ Let me Auto Detect COMM Ports ║ <- Searches for all Comm ports
║ You Manually Enter COMM Ports ║+<- You enter port addresses
║ Help with Auto login Commands ║ <- Detailed help or ALT-H
║ Return To Main Menu ║
╚════════════════════════════════╝ + registered version only
Option 1 repeats what the Modem Doctor does when you first begin to run
the program. Option 2 allows you to enter a "non" standard port address
and assign one of the two Interrupt lines to use with the Uart. Option 3
gives you an expanded, on-line help description of these tests. Option 4
returns to the main menu.
Page 17
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
4.11 What do IRQ's and COMM Ports do ?
---------------------------------------
Each time a character is received by a modem, it has to get the attention
of the computer by raising an interrupt request line (IRQ). PC-type
computers have 8 of these lines, AT-type (ISA bus), MCA and EISA computers
have at least 16. The 8259 Interrupt controller chip handles these
requests for attention. By design, COM1 uses IRQ4 and COM2 uses IRQ3. IRQ7
is assigned to a printer, IRQ5 to the Hard Drives. It is possible to use
COM1 and COM2 or COM3 and COM4 at the same time, but you cannot use COM1
and COM3 or COM2 and COM4 at the same time because these share IRQ lines.
If you needed to use 3 or more COMM ports at the same time, you would need
to use another IRQ line. The best bets are IRQ7 and IRQ5, because they may
be available when you need them. IRQ7 is really only needed by programs
that use printer interrupts (background type spoolers for example). IRQ5
is used by fixed disks. It may or may not cause a conflict if you use this
IRQ line with your modem. PC type computers are quite limited because they
only have 8 IRQ lines and most are reserved. AT type computers have 16 IRQ
lines.
A good tip would be to consult your hardware manual to find out if you can
or can't use these other IRQ's. However, if you do not need to use 3 or
more COMM ports at one time, then it is best to stick to the reserved IRQ4
and IRQ3 for all of your activity.
4.12 Port assignments and their meaning
---------------------------------------
Like IRQ lines, certain port addresses were reserved to work with the PC's
external hardware devices. Two of these were reserved by all
manufacturers; 3F8 (HEX) and 2F8 (HEX). Although only two COMM ports were
supported by the original ROM-BIOS, there are two additional port memory
locations available for use by MS-DOS and PC-DOS applications. These
reserved port addresses are 3E8 (HEX) and 2E8 (HEX). Most internal modems
come with these 4 ports as selections along with several IRQ line
combinations. There is a "quirk" in the way that the ROM-BIOS logs in
these ports. If the Power on self-tests (POST) do not find a 3F8 serial
port but they do find a 2F8, then the 2F8 serial port is mistakenly
assigned to COM1. To add to this, the reserved IRQ line for COM1 is IRQ4.
But this serial Port of 2F8 is using COM2's address, which means it needs
IRQ3 instead of IRQ4. So, if you are trying to use Basic, Pascal, or DOS
for COM1 operations, the serial port or modem will not be able to work.
The general rule thus is "No COM1 without COM2".
The Modem Doctor when it is run will detect this log-in problem and
display an "alert-bar" with a message to you that points out this error.
You can then elect to correct this for the purposes of testing. Remember
though, you can only fix these addresses permanently by changing the
settings on your serial port or internal modem. You can run Modem Doctor
with the /X switch to fix this problem at boot time until you do change
Page 18
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
the address settings permanently. The addresses for PC's are standardized
in order for communication programs to properly work. As stated above, the
industry standards are;
COMM 1 3F8 COMM 2 2F8 COMM 3 3E8 COMM 4 2E8
IRQ4 IRQ3 IRQ4 IRQ3
COMM 5 3F8 COMM 6 2F8 COMM 7 3E8 COMM 8 2E8
IRQ7 IRQ7 IRQ5 IRQ5
The port addresses for serial ports (1-4) are held in a reserved area of
memory. The "base port" of each of these uarts is saved in a distinct
area. When you first start the Modem Doctor, the program checks these
locations to see if there are any Comm ports already logged in by Dos. If
not, a search is conducted for the PC's default Comm 1 and Comm 2 port
values and these are logged in. Next, a search is performed for the other
industry standard Comm ports. Some PC's already log these in, however
IBM-PC's and those that mimic exactly their ROM-BIOS routines do not log
in a COMM 3 or a COMM 4. The Modem doctor does log these in, and as a side
benefit, these stay logged in until the next warm or cold boot is
performed on your computer. Why would Dos not log in a port? Well, some
multi-tasking programs overwrite this area to prevent "swapping" of
communication programs and it is possible that they might not be properly
restored on exit. Next, a search is made for the custom comm ports 5-8.
These ports are not held in DOS at all, but are held in program memory by
the Modem Doctor after a user logs the port in using the Manual log-in
mode (see below). If one of these ports is found, it will be added to the
comm port option menu for you to use when you test the modem. The reason
for the custom ports is to help users who are using non-standard interrupt
lines (IRQ7,IRQ5). Unlike the Dos logged-in ports, these assignments
disappear when the Modem Doctor is exited. The Modem Doctor follows the
accepted arraignment of these comm Port /IRQ line pairings. However, you
do have full control at all times over all port addresses and IRQ
assignments and can change them using the Manual Login mode.
As far as the 2 Options presented by the Login Mode, option 2 is the only
real option available. Please use it with caution. The only need for this
option is for logging in a comm port that does not use any of the listed
industry standards as its base port address or IRQ line assignments.
Consult your serial port or Modem's user manual to make sure you enter the
exact port address and select the correct Interrupt line to use with it.
Otherwise the Modem Doctor will not recognize or be able to test any
device hooked to this port. Protection is included in this routine to keep
someone from accidentally entering a port that is used by the system
board, display adapters, or fixed disk adaptor. Entering any of these
values, or an error, will result in the display;
Page 19
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
"WARNING...RESERVED port...RETRY ENTRY"
After running option 1 or 2 , you must tell the Modem Doctor which comm
port you wish to use so that testing can begin. Pressing the ESCAPE key or
pressing a left or right arrow key works the same as Option # 3 and
returns you to the main menu.
Page 20
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
4.13 Testing defective Ports
----------------------------
Whenever the Modem Doctor checks to see if a port is working properly, it
checks the status of several registers. If a uart appears "dead", the
Modem Doctor will tell you that the port was not "found". You can use the
Manual mode and override this determination. This allows you to test a
defective port to find out what is wrong. If you tell the Modem Doctor for
example to use serial Port 2F8 as COM2 and you do not have a COM2, the
message "COM2 not Found" will be returned with an option "Override [Y/N]
?". Answering "Y" will force the login of this port. Certainly there is
no benefit to testing a non-existent port, but a port that is defective
may not be logged-in. So, you now have the option to test this defective
port hardware to pinpoint a problem. Combined with the register display
and diagnostics, you will most likely be able to pin-point any uart
problem quickly and easily.
4.2 Regs
-------------
╔[ Register Tests ]══════════════╗
║ Quick Uart Register Diagnostics ║ <- Displays all registers
║ DTR/DSR RTS/CTS echo test ║ <- Tests handshake lines
║ Dynamic RTS/CTS handshake test ║+<-|Handshakes under simulated
║ Dynamic Xon/Xoff handshake test ║+<-|on-line conditions.
║ Display any 10 S-registers ║ <- Display S-registers
║ Help and Info on these tests ║ <- Help or ALT-H
║ Return To Main Menu ║
╚══════════════════════════════════╝
+ registered version only
The register display section can be an invaluable diagnostic tool. What
this does is "poll" all of the status registers of the uart, and the
interrupt controller to tell you exactly what is going on. When you use
the setup mode, the Modem Doctor checks all of these registers for correct
information. If something wrong is discovered, a warning is displayed on
the screen telling you what the Modem Doctor believes is wrong. Many
different error conditions are checked, see the error code section for a
listing. Each register contains a Mnemonic for each one of the data bits.
Bits that are a logic low ( = 0) are displayed in low intensity, those
that are a logic high (= 1) are displayed in high intensity. On a color
monitor, this is easy to see. On a Mono Monitor, make sure you have the
brightness and contrast controls properly adjusted to see the difference
between the two status conditions. (Note: Version 4 allows you to pick
your own custom colors, however, it will still alternate between high
intensity and low intensity shades of the colors you select for the uart
register displays).
Page 21
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
-[ Line Control Register ]----------
| DLB STB STP EPS PEN STB WS1 WS0 |
------------------------------------
This register controls many of the setup characteristics of your uart and
how it behaves to your PC. This register is responsible for setting baud
rate, setting break code transmission, parity, and the length of the
serial stream word.
DLB Divisor Latch Used to access the baud rate registers.
Should be low for all displays.
STB Set Break If high, the modem transmits a
break signal, should be low normally.
STP Stick Parity Should be low normally
EPS Even Parity select High = even parity..should be low normally
PEN Parity Enable Enable parity checks, should be low normally
STB Stop Bits Number of stop bits, should be low normally
to indicate 1 stop bit character only.
WS1 Word Length Select 1
WS0 Word Length Select 0 These two bits are used to determine the
serial data word length. Both should be high
normally to indicate a length of 8 bits.
-[ Line Status Register ]-----------
| TSE THE BI FE PE OE DR |
___________________________________
The line status register reports error conditions that might have occurred
between the PC and the Uart.
TSE TX Shift Register A high indicates that all characters
sent to the Uart were transmitted. Should
be High Normally.
THE TX Holding Register A high indicates that the Uart can now
Empty accept a new character from the PC. Should
be high normally.
BI Break Interrupt A high indicates that a break signal was
received. Should be low normally.
FE Framing Error A high indicates that a serial data train
did not have a proper stop bit. Should be
Page 22
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
low normally.
PE Parity Error A high indicates that the received serial
data's parity did not match what the uart
was programmed to receive. Should be low
normally.
OE Overrun Error A high indicates that a character in the
receive buffer was not read by the PC in
time, and another character overwrote and
destroyed it. Should be low normally.
DR Data Ready A High indicates that a character has been
received and is ready to be read by the PC
from the receiver buffer. Should be low
normally for these test, but can vary while
data is coming in from the modem.
-[ Modem Control Register ]---------
| LP OT2 OT1 RTS DTR |
------------------------------------
The Modem Control register handles all of the interfacing between the
Uart and the modem. Only 5 signals are needed for this level of control.
LP LOOP A high indicates that the loopback digital
diagnostic has been activated. This feature
only works with 8250 uarts or those that are
100% compatible. This is used in the digital
loopback test.
OT2 OUT 2 A high enables the uart to generate
interrupts. A low disables interrupts. This
should always be high for testing purposes.
OT1 OUT 1 On 100% compatible modems, a high on this
pin will perform a hardware reset of the
modem in some compatible designs. Normally
this is a low.
RTS Request to Send A Handshaking signal that is used by some
modems to enable data transfer between the
modem and the Uart. Should be high for
testing purposes.
DTR Data Terminal Ready A Handshaking signal that is used by some
modems to enable data transfer between the
Page 23
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
modem and the uart. Should be high for
testing purposes.
-[ Modem Status Register ]----------
| RLS RI DSR CTS DRD TER DDR DCS |
------------------------------------
The Modem Status Register returns the status of the control signals sent
by the modem to the Uart.
RLS Received Line Detect A high indicates that a carrier has been
received by the modem. When the Analog
tests are run, this should be high. If it is
not, it is still possible that the modem
is ok, however the cable from the modem to
the uart (for externals only) might not have
a complete circuit due to faulty wiring of
the RS-232 cable. This signal is very
important for some communications programs
to operate properly.
RI Ring Indicator A high indicates that the modem detected a
ringing signal on the phone line.
DSR Data Set Ready This is part of the DTR/DSR Handshaking pair
that is used by some modems to control the
flow of data. Normally be a high.
CTS Clear to Send This is part of the RTS/CTS Handshaking pair
that is used by some modems to control the
flow of data. Should normally be a high.
DRD Delta Received Line Signal Detect. A high indicates that
the Received Line Signal has changed state.
Some communications programs use this also
as an indication that a carrier was detected
by the modem.
TER Trailing Edge
Indicator A high indicates that the Ring Indicator
changed state. Some communications programs
use this as an indication that the phone as
rung.
DDR Delta Data Set Ready Indicates that the DSR signal has changed
state.
Page 24
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
DCS Delta Clear to Send Indicates that the CTS signal has changed
state.
If a 8250-B / 16450 or 8250A Uart was detected, the following is
displayed;
-[ Interrupt ID Register ]----------
| ID1 ID0 ITP |
------------------------------------
The Interrupt ID Register is used to tell the CPU what kind of interrupt
occurred.
ID0 Interrupt Bit 2
ID1 Interrupt Bit 1 These two signals are a binary code which
can be read by the CPU to tell what kind of
interrupt occurred. Both bits high indicates
an error occurred or a break interrupt was
received. Bit 2 high and Bit 1 low
indicates that data is ready to be read by
the CPU. Bit 1 high and bit 2 low indicates
that a ring signal or carrier signal was
received. For testing purposes, only the
Data ready mode is used.
ITP Interrupt Pending A Low indicates that an interrupt has
occurred. For testing purposes, this should
always be high if data was successfully read
by the Modem Doctor. If it is not, then an
interrupt did occur but the CPU did not
respond. Suspect a problem with an interrupt
controller chip or the uart interrupt
generating capability. If a 16550 or
16550A(x) chip was detected, the register
selection uses the enhanced register
display.
If a 16550A(x) was detected, the appearance of the Interrupt ID register
changes and the following is displayed;
-[ Interrupt ID Register ]----------
| FEM FEL ID2 ID1 ID0 ITP |
------------------------------------
Page 25
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
FEM FIFO Enable MSB This is the most significant bit of the FIFO
register. It should be high on both the
16550 and 16550AN if the FIFO buffering is
enabled. Normal Modem Doctor status shows
this as a logic low (unless testing is
performed).
FEL FIFO Enable LSB This is the least significant bit of the
FIFO Register. It should be a high on the
16550A(x) only! The 16550 always displays
this bit low. Again, the normal Modem Doctor
status will show this as a logic low (unless
testing is performed).
ID2 FIFO Timeout This signal is raise high by a 16550A(x) to
indicate that it is holding characters for
the CPU to read, but it is less than what
the CPU has requested to be interrupted for.
The FIFO buffer can be as deep as 14
characters. If only 8 have come in, the CPU
will not be interrupted. The 16550A(x) is
programmed to interrupt after a period of
time has gone by during which no characters
were received in order to force the CPU to
get what it is currently storing. Normal
operation should keep this line low, if it
is high at any time there is a problem with
the uart.
-[ Interrupt Enable Register ]------
| ESI ELI ETI ERI |
------------------------------------
The Interrupt Enable register is programmed to allow certain types of
interrupts to occur.
ESI Enable Status A high causes the uart to generate an
interrupt whenever RI or RSD signals in the
Modem Status register go high. Should be low
for testing.
ELI Enable Line A high causes the uart to generate an
Interrupt whenever an error or break
interrupt is detected in the Line Status
Register. Should be low for testing.
ETI Enable Transmitter A high causes the uart to generate a holding
register interrupt whenever the THE signal
Page 26
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
of the empty interrupt line status register
goes high. Should be low for testing.
ERI Enable Receive Data A high causes the uart to generate an ready
interrupt whenever data is ready to be read
by the CPU. The DR line of the line status
register going to a high state generates
this condition. This signal should be high
for testing purposes, since it is the only
interrupt needed by the Modem Doctor.
-[ Interrupt Mask Register ]--------
| IQ7 IQ6 IQ5 IQ4 IQ3 IQ2 IQ1 IQ0 |
------------------------------------
The interrupt mask register is contained on the 8259 priority interrupt
controller on your computer's motherboard. Each one of these hardware
interrupts corresponds to an external device.
IQ7 Printer Interrupt (can be used by Custom COM5 or COM6)
IQ6 Floppy Disk Interrupt
IQ5 Hard Drive interrupt (can be used by Custom COM7 or COM8)
IQ4 COM1 Interrupt (also COM3)
IQ3 COM2 Interrupt (also COM4)
IQ2 reserved by IBM (Gateway to second 8259 on AT's)
IQ1 Keyboard Interrupt
IQ0 Timer Interrupt
Under Normal Conditions, IQ0,IQ1 and IQ6 should be lit, along with IQ4 if
testing COM1 (or COM3) or IQ3 if testing COM2 (or COM4). In addition,
other lines could be lit depending on your computer. The only line the
Modem Doctor looks for is the IQ4 or IQ3 lines (depending on which serial
port you are testing).
4.30 Handshaking tests
----------------------
Just like a handshake between friends, the Modem Doctor tests to see that
your computer uart and the modem are properly exchanging handshaking for
data communication. There are 4 tests for proper operation. Two of them
are static (meaning that the control lines between the computer and modem
are raised and lowered), and two of them are dynamic (meaning that the
modem is placed in a self-connect mode and data is sent to the modem).
Static test results can vary modem to modem. Some modems echo control line
toggles...in other words, if DTR goes low, so will DSR. Other modems do not.
Page 27
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
So, it would be considered normal for a modem *not* to pass this particular
test. However, if you wish to test a cable, and at the end you place a
loopback plug, then the static echo test should pass. Otherwise, your cable
is wired incorrectly!
The static RTS/CTS tests are conducted the same way, however this
handshake pair is important for high-speed modem users. Again, working
through a modem, you will see a failure (unless using the modem for
Synchronous Communications, something most users never do). However, with a
loopback plug, you should see the static test pass. The static tests above
are designed to show that your cabling to the modem is proper, when verified
with a loopback plug. However, these tests cannot verify if your modem
microprocessor will act properly on this handshaking information.
The dynamic tests force your modem to self-connect. Next the RTS (or DTR)
lines are dropped (depending on which test is run). Then 20 characters are
sent to the modem. If the modem is properly using handshaking, no characters
will be sent back to the computer. If any characters are received, then your
modem ignored the handshake request. In most cases, if the static tests
passed but the dynamic failed, it means your modem needs to be setup for
testing.
The Modem Doctor offers you the choice of programming your modem to test
its ability to handshake. Using this mode requires that you have selected
the proper modem driver from the Carrier mode before hand, otherwise
incorrect commands will be sent to your modem. If you know you have the
right driver, then you can go ahead and see if your modem is set properly
or not.
None of the commands sent to the modem are permanently stored in the
modem. If the Modem Doctor enables handshaking and it works, but your
setup in the modem does not work, then you have to reprogram the modem
yourself. You can use the Interactive terminal mode to do this if you wish
without leaving the Modem Doctor. Also, in order for these tests to be valid
you must be using a modem that supports RTS/CTS and XON/XOFF handshaking
modes of operation.
4.30A S-Register Displays
-------------------------
The most important S-registers are the first 16. These determine many of the
abilities and options that your modem can use during communication sessions.
However, today's high-speed modems have many more registers, in fact some
have up to 200! After the first 16, no one really follows any sort of "plan",
each modem manufacturer is pretty free to do what they wish. From a
diagnostic standpoint, this is a nightmare senario. Even with the same
manufacturer, different ROM versions change how these registers are used.
The "compromise" position is allow for the viewing of S-registers in groups
Page 28
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
of 10. You pick the starting register, and the next 10 are displayed. Values
of 0 (appearing slowly) usually indicate that the selected register doesn't
exist. As with all Modem Doctor routines, you cannot change any of these S-
register settings, unless you go into the Interactive Mode and use the AT
commands that allow you to change register settings.
4.31 Carrier Tests
-----------------
╔[ Setup ]═════════════╗
║ Run the Carrier Tests ║ <- Simulate on-line tests
║ Select Modem Commands ║ <- Pick a modem driver
║ Help With Carrier Test ║ <- Help
║ Return to Main Menu ║
╚════════════════════════╝
The carrier test section is used to test your modem's ability to detect a
carrier, demodulate signals on the originate frequency and answer
frequency, and to properly control the RLS (Received Line Signal) and CD
(carrier detect) modem status/control lines. All of these are essential
elements for good data communication. When you select carrier tests, a
pulldown menu is displayed. Option 1 prompts you to run the carrier tests.
Option 2 offers you the chance to select a custom modem driver. Option 3
allows you to return to the main menu (pressing ESCAPE or a left/right
arrow key also does the same thing as option 3).
4.31 Modem Driver Modules
--------------------------
Although your AT instruction set modem is based on a defacto standard
developed by Hayes, there are several "supersets" of this instruction set
for various modems. Currently, the Modem Doctor supports 9 different
software Modem Drivers for testing; Generic Compatible, &T0 (CCITT V.54 test
sequence) instruction set, Hayes V9600, Hayes Ultra 9600, Courier HST/V.32,
ZyXEL 1496, Practical Peripherals, Intel, and Sierra Semiconductor modems.
When the Modem Doctor is running the setup mode, it queries the
microprocessor for its type identification. Based on this information, a
modem driver is selected for use. Basically, all 2400 bps and lower modems
are assigned the Generic Driver, and all supported 9600 and higher modems are
assigned their proper ID, based on the information your modem returns via its
ROM code. If Modem Doctor knows its a high-speed modem but can't determine
the type, the Courier HST/V.32 driver is assigned by default. The &T0
instruction set modems, (those that use the CCITT V.54 test sequence), are
tested in a different manner with a different set of instructions. Previous
versions of the Modem Doctor would automatically switch to the &T0
instruction set if the modem was a 2400 bps modem and if it failed to
properly detect a carrier during testing.
Page 29
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
This function is still built into the Modem Doctor, but you can
optionally select the &T0 driver yourself before beginning your testing in
order to speed things up. Auto-selection added about 10 seconds a pass
that can now be eliminated. If you desire to select the &T0 set for your
modem instead of letting the Modem Doctor do it for you. NOTE: Don't
select this instruction set unless you know for sure that your modem is
100% instruction set compatible with the Hayes 2400 or 2400B. Hayes 1200
bps and lower, and almost all other 2400 bps and lower modems use the
Generic Driver. You will find that 99% of all modems will work properly
with this assignment, in fact, if you disable all data compression and
Fixed link assignments from any high speed modem (including 16800+'s), the
generic driver will test these modems properly also! This allows people with
high-speed modems that are not supported currently to use the Modem Doctor
for testing. If you have a high-speed modem that is not supported, you can
use a Combination of the Manual mode and the Generic Modem Driver to test
these modems also.
All of the modem drivers used by the Modem Doctor are built into the
program, however version 5.0, like version 4.0x, has the ability to recognize
an external driver file. If the Modem Doctor finds and external driver file
when it starts, it uses those command instead of the built-in drivers. The
format for drivers has changed between version 4.0x and 5.0, and any future
drivers will be released in both formats for users of both versions of Modem
Doctor.
What purpose is there in external drivers? Well, first off, if a new modem
command set is adopted, or a bug is discovered in one of the built-in
modems, you will be able to receive a free driver file from any bbs or by
mail. This means that your copy of the Modem Doctor can stay current for
some time to come. The second reason for external drivers is to allow you,
if you desire, to have us custom design a modem driver for a particular
modem. These drivers would be designed at a modest charge and would be for
your use only. In any case, external drivers insure your investment in the
Modem Doctor.
4.32 Types of Carrier Tests
-----------------------------
The carrier tests are designed to test your modem under actual use
conditions (minus a telephone line). Your modem uses two different
frequency bands for communication. These are the originate and answer
frequencies. AT Compatible modems can select these under command of the
Modem Doctor via the appropriate Modem Driver module. So called "Dumb"
Modems have front-panel switches that you must use to properly test the
modem. The Modem Doctor supports both types of tests, one of which is
automatically selected by the Modem Doctor depending on the hardware it
detects.
4.33 AT Instruction Set Tests
Page 30
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
-----------------------------
If you selected the Test Modem/Uart option from the setup menu and a Modem
with a compatible microprocessor was detected, or if you have forced the
Modem Doctor to use the AT instruction set tests via the hot-key ALT-F,
the Modem Doctor will test the originate and answer frequencies of your
modem automatically. Before running this test, make sure you have
disconnected the modem from the telephone line, because the modem will go
off-hook and sometimes the dial-tone will interfere with testing. If you
press ESCAPE in this menu, you return to the main menu. Any other key
continues. You will be prompted to enter a "Loop Count". If you select a
count of 1, you will be able to hear the connecting tones on your speaker.
If you select a count greater than 1, then the speaker is turned off.
After you make your selection, two windows will open on your screen. One
contains data that is being sent to the modem, the other data that has
been received by the modem. All of the characters from binary 0 to binary
255 are transmitted. Some of these will look strange because they are
characters of the extended character set. The Modem Doctor takes a great
deal of care in preserving the normal condition of your modem before
testing, and sends all the character strings necessary to test without
disturbing any non-volatile memory settings. If you have an external
modem, you will see the data being sent and acknowledged before testing
begins.
While it is setting up, the Modem Doctor tells you what is going
on, including that the modem is reset, that commands are being sent, and
that it is waiting for a carrier. The Modem Doctor waits up to 15 seconds
for either the word CONNECT or the RLS signal to go active. If this does
not happen, the Modem Doctor switches to the &T0 command set that is used
by Hayes 2400's and several other clones. This test is just as valid as a
full carrier test for these types of modems, and verifies both the modem
and the uart signal paths as does the traditional carrier test. If you
switch to this mode, you will be informed via the screen and the message
"CCITT V.54 " will be displayed. Also, if you have an external
modem, you might see the "modem ready" light flashing throughout this
test. If you selected the &T0 instruction set yourself from the Modem
Driver selection menu, then the &T0 set will be used exclusively. This
selection is mainly a convenience for some users (because the
auto-detection method takes a little longer), however it will not test any
other kind of modem properly.
If you are unsure, let the Modem Doctor figure it out for you. Note, if
you select more than 1 itineration and change you mind, press ESCAPE
anytime during the test. At the next available loop-repeat time the Modem
Doctor will abort testing and give you your current status.
4.34 Uart or Dumb Modem Tests
-----------------------------
Page 31
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
This test works the same as the AT instruction set modem test with two
main exceptions. First, Your modem must be able to generate a carrier on
its own on the answer and originate frequencies. Most external "dumb"
modems have front panel switches for this function. Most are marked as AL
(for Analog Loopback). If your modem can generate this, answer yes and
follow the prompts on the screen. All testing is performed as above,
except you setup the modem instead of the Modem Doctor using its modem
driver software. Whenever the Modem Doctor is working with the micro in
the "Off-line" mode, the dumb mode tests are used. You are prompted if
your modem can generate a carrier. Answer yes to start the testing. You
are then told to place your modem in the analog loop mode and force the
carrier detect on. Most dumb modems will light the CD light on the front
panel of the modem when you press the AL switch. This CD light sends a RLS
(Received Line Signal) status word to the uart. The Modem Doctor looks
for this before it will allow testing in this dumb mode. If your modem
cannot generate a carrier indication, you can still test an analog
loopback using the loopback function in the registered version and select
the analog loopback tests (this is explained later in the documentation).
Page 32
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
4.35 Error Messages
-------------------
If A RLS (Received Line Detect) signal is not received before testing
begins, this indicates that either a carrier is not being generated (or
properly received in self test) by the modem, or an RS-232 Cable to an
external modem is improperly wired. Although RS-232 loops will work fine
without an RLS signal being wired, there is no way for the Modem Doctor to
detect on a dumb modem if a carrier was generated. On a AT instruction set
modem, the Modem Doctor alternately looks for the word "CONNECT" to be
sent from the modem if there is no RLS signal available. If you wish your
all of your communications programs to work properly, you should get a
cable with this signal wired. If an error is detected during the analog
test, the error counter is incremented. There are two error counters; one
is used for the originate mode, and the other for the answer mode. If you
receive an error, it could be due to a problem with a uart or a modem at a
certain baud rate. Try testing at other baud rates to determine if the
errors repeat. Also errors could occur on only the originate or the answer
frequency. This is more prevalent at higher baud rates. Finally, make sure
that the modem was disconnected from the phone line before testing. The
dial-tone interferes with some modems. One other possibility exists, that
there could be a problem with a cable or interrupts not properly being
generated or properly handled by the CPU. Run the digital/loopback tests
and if the problem repeats, you might have a bad uart or motherboard
problem. Although it is unlikely, if power is removed from the modem or a
cable falls off (or who knows what else), the Modem Doctor waits a
pre-determined period of time for an interrupt to occur. If none is
detected, the warning "Modem Queue Failure" or "Modem Receiver Failure"
will be displayed in one of the windows. These might also be displayed if
the modem never acknowledged a character being transmitted, or never sent
one back. Again, the only conditions that would cause this would be a
cable being removed between the modem and the uart, the power being
removed to the modem, or the modem "blowing up" via some unnatural means
during the test. If the RLS (Received Line Signal) is constantly active
from the modem, the Modem Doctor will tell you that you might have a
problem with a cable or the modem and that the test results might not be
valid. Reason for this is that the Modem Doctor never did detect a carrier
because the uart said it was already there. This can be traced in nearly
all cases to the modem. Change the setting of the modem to let the carrier
Detect (CD) act normally. It should never be set to be forced on for a PC.
If so, not only the Modem Doctor, but other communications programs will
not operate properly.
4.36 IRQ Failures
-----------------
The Modem Doctor will allow you to test a modem that might not have a
proper IRQ assignment. Such errors in jumper settings on your serial cards
or internal modems are tough to trace. If you see this error message
displayed, it means that your modem is receiving signals properly, but it
Page 33
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
cannot communicate back to the computer over normal interrupt assignments.
This normally results from using an IRQ line reserved for one comm port
with another. See the section above about IRQ's if you get this error, and
use the table above as a guide to how to correct your problem.
IRQ failures will be displayed in the setup mode, the Regs Quick Uart
Diagnostics mode, the Analog Loopback mode and the Carrier Tests mode.
4.4 Loopback Tests
-------------------
The loopback tests were designed for two purposes. First, to test an
RS-232 loop including cables that are properly terminated with a loopback
plug, and second, to run a digital loopback test on 8250 and 100%
compatible uarts. Additionally, the analog portion of this test can be
used to test a dumb modem that does not generate a CD (carrier detect)
signal when the AL switch is thrown on the front panel. Selecting loopback
and pressing return fetches this menu;
╔[ Loopback Tests ]═══════════╗
║ Analog Loopback using a PLUG ║ +<- test Uart & Cables
║ Digital Loopback 8250 UARTS ║ +<- Uart test only
║ Loopback Plug Technical Data ║ +<- How to build a
║ Help with Loopback Tests ║ loopback plug
║ Return To Main Menu ║
╚═══════════════════════════════╝
+registered version only
Analog loopback tests require that you attach a Loopback plug either to
the back of the Comm port connector on your computer, or at the end of a
RS-232 Cable. This test is designed for external modems, however you could
run this on an internal modem as a test of the command channel's ability
to receive characters. Caution should be used on internal modems, for some
will fail this test. If this happens, don't be concerned. However this
test should NEVER fail with a loopback plug, unless you were trying to
drive the line at an excessive rate. Remember, the faster the data rate,
the shorter the lines should be, and the faster the computer should be to
handle it. With a loopback plug on the back of the serial port, speeds of
56000 bps should run fine even on a slower PC (as long as it is not multi-
tasking). If you experience problems at 56000 but not at 19200, chances
are your hardware is fine (if you are using an 8250-B). In extensive
testing with PC's at 4.77 mhz, the original 8250-B performed flawlessly at
56000 bps. Dumb modems can use this test also (as explained above and in
the section carrier tests). Digital loopback tests require that you have
an 8250-B, 8250A,16450, 16550, 16550A(x) or other 100% compatible uart in
your system. These uart's have built-in diagnostics. If you are using a PC
compatible internal modem or a PC compatible serial card, then you will
definitely have a compatible uart installed.
Page 34
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
There is a design difference between the 8250-B and other compatible chips
in this series. Some of the differences were explained above, but the
important difference for the loopback test is the way the different uarts
will respond. The 8250-B allowed its OUT2 signal to become active during
loopback testing. The OUT2 signal is used by PC compatible machines to
gate the interrupt signal off of the serial board (or internal modem).
Later designs (8250A, 16450, 16550,16550AN) tri-stated this line. As a
result, the self-test diagnostics will not allow the interrupt signal to
gate off the board and interrupt the CPU. This would cause all digital
loopback tests on these improved chips to fail. The Modem Doctor handles
this by a brute-force read of the uarts. By sampling the Interrupt ID
register, the presence of an interrupt is detected, then the receiver
buffer register is read. This method is not as efficient as a true
interrupt-driven test would be, but it is accurate. The Uart does generate
the ID for an interrupt, the character is pulled out of the uart. In
version 4.0, the speed of this routine was significantly enhanced so that
it runs approximately at the same speed as a true interrupt driven 8250-B.
When running this test on an 8250-B, you will see the true speed of the
interrupt handling and processing. On others, you will see the
brute-force method. Each is an accurate test of the uart and valid at any
baud rate selected. If this test does not run, but yet the analog test and
all other tests run fine, it means that you do not have a compatible uart
installed. Some uarts that are not 8250's have a problem entering this
mode properly. If the test does not start, do not be alarmed, because
only 8250 and true compatibles will pass this test. However this test will
NEVER start and then fail unless you do have a hardware problem. You
should never pick up a character error using this test. If you do, you
have a bad uart or CPU motherboard problem. Both tests open up windows
(like the analog test) and send and receive characters to the uart. If you
wish to know how to build a loopback plug, select the Loopback Plug
technical data section. Pressing ESCAPE or the left/right arrows is the
same as Option 4 and returns you to the main menu.
4.41 Loopback Test Error messages
---------------------------------
Essentially the error messages for these tests are simple. In the loopback
test mode, if a character is received incorrectly, the error counter is
advanced and a report is issued at the end. If the analog or digital tests
fail to receive or transmit characters, the messages will explain that
either the transmit queue, the receive queue failed, or that the uart did
not respond to the tests. The last message may be displayed if you have a
non-compatible uart. If the uart fails to setup properly for the digital
loopback test (does not program its registers properly), a warning is
displayed that there is an error in one of the registers. The message will
explain what is wrong and what it expects. Also, if you are using the
wrong IRQ line for your comm port, you will receive an IRQ failure error.
See the warning message section for more details.
Page 35
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
Page 36
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
4.5 Options Mode
---------------------
╔[ User Options Selection ]╗
A Built-in mini-terminal -> ║ Interactive Terminal Mode ║
Status of all tests -> ║ View Current Statistics ║
Reset all tests to 0 -> ║ Reset Current Statistics ║
Send results to printer -> ║ Print Current Statistics ║
║ Help with these options ║
║ Return To Main Menu ║
╚════════════════════════════╝
The options mode allows you access to the built-in 16k communications
terminal (Interactive Mode), and the report generator features.
4.51 Interactive Mode
----------------------
As well written as the Modem Doctor is, there exists the possibility that
a modem or a system might not be compatible with the diagnostics. The
manual section allows you to send your own string commands to the modem,
read back data, and in fact you could use this as a mini-communications
program. If you select this mode, a window opens with the banner
Interactive Mode. At the Bottom are listed the "Hot-Keys" you can use;
ALT-B This opens a window for you to change the baud rate.
Note: if you are on-line with a service this might cause an
error between the computer and the modem. Off-line conditions
should work properly.
ALT-C Clears the screen. This only clears the window of data, and
leaves all your prompts.
ALT-N Add Nulls, this is new with Modem Doctor 5.0, and can be used
to determine if your display adapter is causing "Interrupt Latency"
ALT-R This displays the Uart registers...handy for real-time
troubleshooting of RS-232 loops.
ALT-H Help..this displays the basic AT Command set instructions
that you could use to control your modem. Note that this is only a
basic set. Some modems have many extensions to this, so for
advanced work, consult your owners manual.
ALT-X Exits the interactive mode and returns to the main menu.
Page 37
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
4.51A Testing for Interrupt Latency
-----------------------------------
Interrupt Latency is caused by a hardware device (usually a hard disk or a
video display adapter) taking longer to process a function that the time it
takes to receive a character over your modem. Normally, interrupt latency is
not a problem until you use DTE/DCE speeds over 19200bps. With today's high-
speed modems, its not uncommon for people to be running speeds of 38400 or
57600bps between computer and modem. Older display adapter, most notably
early EGA's with "Auto-detection" circuitry, cause interrupt latency. The
symptoms will range from loosing characters occasionally to excessive errors
when downloading files.
There is no real test for interrupt latency, because such a wide variety of
situations can cause it. The only "cure" is to aquire a faster display
adapter or a 16550AFN uart. Now, there is a way that you can use Modem Doctor
to verify such an error is happening, and that is by using ALT-N. When you
add nulls, you are telling Modem Doctor to wait a bit longer inside of a
routine that talks to your video adapter, looking for more interrupts before
exiting the display routine. If adding nulls improves the error rate that you
see characters displayed (while on-line via the Interactive mode to a BBS),
then you know you do indeed have an interrupt latency problem. There are two
"short-cut" keys associated with ALT-N, and they are ALT+ and ALT-. ALT-N
prompts you for a number, while ALT+ adds 1 to that number, and ALT-
subtracts 1 from that number.
4.52 View Current Statistics
----------------------------
Whenever you log-in a comm port for testing, the Modem Doctor keeps tabs
on how many tests were run, the baud rates that were tested, and how many
errors you accumulated. You can view these statistics by using this
selection. These results are also displayed whenever you quit the Modem
Doctor.
4.53 Print Current Statistics
-----------------------------
If you wish a hard-copy of your test results, just select this option. You
will be able to send this to any one of the printers the modem doctor
finds available or to a file called MDR.RPT.
4.54 Reset Current Statistics
-----------------------------
Use this mode to reset all test results back to zero at any time.
Page 38
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
4.6 Setup Mode
--------------
The setup mode consists of 2 sections. The first, the setup modem section
was covered above. Use this to change the serial port under test, the baud
rate, and the type of test to be run.
The second section allows you to select the colors that you wish to work
with while using the Modem Doctor. You can select default colors,
Monochrome (black and white), or create your own custom colors.
If you are using a color monitor, you can use window selections to pick
the colors you like and optionally save them to a file (MDR.CFG). If you
save them, then as long as this file exists, the Modem Doctor will use
those colors in place of the default ones. To return to default, either
erase the MDR.CFG file, or select default colors and save it to disk.
When you enter the color selection mode, you will be presented with three
different windows that will allow you to make legal color selections.
[ Mdr Color Selection Screen ]
Select from this menu the color of normal window and error backgrounds
Background
Black
Blue
Green
Cyan
Red
Magenta
Brown
Gray
Select from this menu the color of all window foregrounds & sliding bars
foreground colors;
Darkgray
Lightblue
Lightgreen
Lightcyan
Lightred
Lightmagenta
Yellow
White
If you select two colors the same (or different intensities that are the
same), the Modem Doctor will tell you your selections are invalid. After
you have made your choices, you will be presented with a window that
allows you to save your choices to a file, use the choices without saving
or reselect. If you save them to a file, a file MDR.CFG is created or
Page 39
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
updated. When Modem Doctor loads the next time, it will use these colors
again.
4.7 Exit Program
----------------
This is the only way to exit the Modem Doctor. This is necessary because
the interrupt tables and controllers of your PC must be returned to their
original state in order to avoid problems after you use the Modem Doctor.
Pressing Control-C or Control-Break during the Modem Doctor will
cause one of two things to happen. First, it will ignore what you have
done if it is critical that the program not be interrupted, or second, if
it is at all possible to exit without damage, a window will open telling
you that you can Control-Break abort if you wish..answer yes or no. You
can Control-Break during all tests and at times from menus. If you choose
to quit, the Modem Doctor cleans things up properly and exits to Dos.
Please remember this is just an emergency way of doing an exit. Use the
Exit function from the main menu as the correct way to end the program.
5.0 Error Messages and their Meanings
-------------------------------------
The Modem Doctor, if presented with an error, will make a diagnosis of the
problem. In most cases, this should be enough for you to figure out what
is wrong and go on from there to correct it.
General Program Errors or Warnings
----------------------------------
1) ABORT PROGRAM Control Break Key pressed..Aborting Program Run.
Do you wish to abort? [Y/N] :
- This means you have pressed the Control Break Key sometime during
the program run. The Modem Doctor, unlike most programs, does not
drop to dos with a Control-Break without cleaning up after itself.
Answering Yes will clean up and stop the program. Answering no keeps
the program running at the spot you left off at.
If you answer Yes, you will see this message;
Flushing Buffers.......Restoring Comm Port and Interrupt Vectors
Program Aborted..all vectors restore.
2) You Must SETUP a COMM PORT first....Press any key to continue
- If you do not select at least 1 comm port when the program first
starts running, you cannot run any tests. This message explains why.
3) Exchanging COM1 and COM2 Base Addresses in Memory
COM1 Address was %x COM2 Address was %x
COM1 Address now is %x COM2 Address now is %x
Run MDR /X again to exchange again, these changes are gone when you
reboot!
Page 40
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
- This messages is displayed when Modem Doctor is run in the exchange
mode (MDR /x).
4) Sorry...but I cant find a modem to use... Use Login Feature to
Manually Log in a comm port.
- The Modem Doctor needs at least 1 comm port installed at a
conventional port address to run. If none are available, you have to
use the manual login mode to start testing. You should never see this
error message with a computer unless it has no serial ports
whatsoever.
5) Resetting modem to your default settings...please wait
- Whenever you exit Modem Doctor and a microprocessor-based modem was
detected, it will clean up after itself and restore your modem to
initial settings. Uart only tests do not display this message.
6) Your foreground color equals background..please retry
7) Your foreground low intensity equals background, please retry
- These messages are displayed when you make color selection choices
that would not be proper for the type of display monitor you are
using.
8) Warning..I could not create the MDR.CFG file. No colors saved to disk
- Modem Doctor could not save the file to disk, perhaps there is no
more space on the disk or the disk is write-protected.
9) Warning..I could not read the MDR.CFG file. No colors read to disk
- You asked Modem Doctor to load the color configuration, however
there was none found on your disk or in the current working
directory.
Setup Mode Diagnostics
-----------------------
1) No Response...resetting modem microprocessor ...attempt #%d
- The Modem Doctor tried sending a simple AT command to your modem
but it did not respond with a valid answer.
2) Modem microprocessor command mode not detected
- The Modem did not respond to a valid, simple AT command either
because it is on-line, jammed, or not completely compatible.
3) Modem microprocessor command bus active
- The Modem Doctor received a correct response from the modem and
placed it into the command mode.
Page 41
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
4) Software reset initiated
- A software reset clears all test registers and resets the modem.
5) Modem microprocessor memory tests OK
- The Modem Doctor instructed your modem to run a self-test of its
RAM/ROM contents. It responded successfully.
6) Modem microprocessor memory may have a problem
- The Modem Doctor instructed your modem to run a self-test of its
RAM/ROM contents and did not receive the proper response. Your modem
may or may not have a problem depending on the results of all the
rest of the testing. If all other tests are ok, chances are your
modem might have a memory problem. If other tests fail, it could be
because your modem is not completely compatible.
7) Modem ID reports a 1200 bps modem installed
Modem ID reports a 2400 bps modem installed
Modem reports a 9600+ bps modem installed
Modem reports a 9600 /1440 bps modem installed
- All of these messages are based on receiving correct product codes
from your modem. Some modem manufacturers however do not place valid
product codes in their modems, so it is possible that you might see
the Modem Doctor give you the incorrect type of modem. This does not
affect testing, however it does affect the type of Modem Driver that
is automatically selected. You can override automatic selections from
the Carrier Menu by selecting the proper driver for your modem.
8) No modem ID received...using Generic driver
- No product code was received, so defaults are being used.
9) Modem microprocessor accepts setup commands
Modem microprocessor did not accept setup commands
- The Modem Doctor sends setup commands for all of its tests to your
modem. If they were not received properly, you get an error message.
10) An 8250-B Uart has been detected
A 16450 / 8250A Uart has been detected
A 16550AN/AF/AFN Buffered Uart has been detected
A 16550 Non-buffered Uart has been detected
- The Modem Doctor programs uarts differently depending on the type
and the test running. This will tell you what type of uart chip you
have installed in your serial port.
11) Modem Control Register reading show that either the LOOP, OUT2, DTR
RTS did not set properly to test. OUT2 and DTR are essential for
proper-functioning communications. LOOP is necessary for the digital
test to run.
Page 42
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
-Either the Modem Control Register is bad, or their is a problem with
the serial port or modem.
12) Modem Status Register readings show that there is no status coming
back from the modem to the Uart. Neither RTS/CTS or DTR/DSR Pairs are
active. Most comm programs can work without RTS/CTS, but DTR/DSR are
needed by most. RTS/CTS are needed by most hi-speed modems for
handshaking.
-Your external cable may be wired wrong, or if this is an external
modem, check that the cable is plugged in and that the modem is
turned on.
13) Line Control Register readings show that the word length selected is
incorrect or you have a parity error. WS1 and WS0 should both be on
indicating that 8 bit words are to be used. All other readings should
be low. Parity errors could happen once but not every time.
-If either persists, then the Uart is defective or communications to
the Uart are suspect.
14) Line Status Register readings show a problem. The Tx Holding register
THE and the Tx Shift register TSE should be the only active signals.
No other signals should be active. If either TSE or THE are not
active then the Uart is not resetting properly. Uart is suspect. If
any other signal is high, and TSE/THE are both active, then you have
a data overrun or framing error.
-If this repeats, you should then suspect the Uart or connections to
the Uart from the computer.
15) Modem Control Register readings show that either DTR,RTS or OT2
signals are not set properly. DTR & RTS are needed by most comm
programs. OT2 is essential for interrupts to occur.
- Uart is suspect or the interface to the Uart from the computer bus.
16) Interrupt ID Register readings show that an interrupt is pending when
none should be. This can be caused by a modem being turned on and off
as testing was conducted or if data was waiting to be read by a prior
running application, or you are not using the correct IRQ line.
-If this does not clear when you display the registers again, then
the Uart is suspect or connections to the Uart from the computer, or
you are using the wrong IRQ line for this comm port assignment.
17) Interrupt Enable Register readings show that ERI Enable Receiver ints
is not set properly. As a result, you might not get proper
recognition of any interrupts being generated when a character is
received.
Page 43
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
-Suspect the Uart or connections to the Uart from the computer bus.
18) Interrupt Controller has not responded to setting the IRQ4 line. This
problem is on the system board of your computer. Run your computer
diagnostics program to locate the error.
-Normally IRQ4 is used for COM1 you might have a usage conflict.
19) Interrupt Controller has not responded to setting the IRQ3 line. This
problem is on the system board of your computer. Run your computer
diagnostics program to locate the error.
-Normally IRQ3 is used by COM2 you might have a usage conflict.
20) Interrupt Controller has not responded to setting the IRQ7 line. This
problem is on the system board of your computer. Run your computer
diagnostics program to locate the error.
-Normally IRQ7 is used by the printer you might have a usage
conflict.
21) Interrupt Controller has not responded to setting the IRQ5 line. This
problem is on the system board of your computer. Run your computer
diagnostics program to locate the error.
-Normally IRQ5 is used by the Hard Drive Controller you might have a
usage conflict.
22) WARNING...This COMM PORT MODEM STATUS & ID REGISTERS ARE DEFECTIVE
- This is a severe error. It means that one or more of the uart
registers are defective. This could also be caused by logging in a
non-existent comm port in the manual mode. You should never see this
message displayed in an auto-detected mode unless your uart is
definitely defective.
Uart diagnostics
-----------------
1) Confirmed Uart setup to proper baud rate
- The uart Dlab (divisor latch) settings are polled to make sure they
match what the Modem Doctor intended. If not, you see the following
displayed;
ERROR..Uart did not set to desired baud rate
(you should not see this message unless the divisor latch in your
uart is defective).
2) Trying a hardware reset of the modem microprocessor
- None of the attention commands or soft-resets to the modem have
worked to place the modem microprocessor on-line. A hardware reset
Page 44
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
simulates turning the power on and off to the modem and uart.
3) WARNING...This unit does not have a compatible modem attached
- After many tests and hardware/software resets, the Modem Doctor
finally deduces it cannot work with this modem because it is not
compatible. If you have a compatible modem, then you might have
selected the wrong baud rate to work with, or you forgot to turn the
external modem on. If there is a hardware problem, the next screen
you will receive will be the uart diagnostics pointing out the
problem.
4) Modem microprocessor ON-LINE
- The Modem Doctor successfully communicated to the modem
microprocessor.
5) Testing Uart hardware only
- You are running uart-only tests.
6) WARNING...The Modem Device appears to be off or not connected
- No status is being received from the modem indicating it is on. If
it is on, you might have a bad cable. If you are testing a uart that
is hooked up to a serial mouse, then you will always see this message
displayed, for a serial mouse does not use traditional uart status.
Report Generator Messages
--------------------------
1) You selected to clear the report stats.This means that any errors
found will not be reported in a final report format.
Are you sure [Y/N]: ?
- All report statistics will be cleared if you respond Yes.
2) Send to file MDR.RPT
Send to printer LPT1:
Send to printer LPT2:
Send to printer LPT3:
Do not Print /Return
- The printed form of your report can be sent to any one of 3 dos
printers (if the Modem Doctor detects they are installed) or to a
file called MDR.RPT.
3) Print Buffer full or Printer off-line
- If the Modem Doctor cannot communicate with the printer, it is
either receiving a busy signal from the printer (which clears when
the busy signal is lifted) or the printer is off-line.
Page 45
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
Static DTR/DSR RTS/CTS Handshaking tests
-------------------------------------------
1) Lowering DTR Signal..waiting for DSR to follow
DSR did not follow DTR dropping or is set as a permanent ON
DSR followed DTR drop...normal for all devices
DSR did not follow DTR raising..possible cable or modem setup problem
DSR followed DTR raise or is set as a permanent ON
- The DTR/DSR tests work by lowering the DTR (Data terminal ready)
signal from the computer to the modem. If the modem uses this type of
handshaking, it should respond by lowering its signal that is picked
up in the uart modem status register as a DSR (Data set ready)
signal. If not, then either the modem is not set up properly
according to standard handshaking protocol or you have a bad cable.
Please note, a failure to follow DTR/DSR handshaking might keep some
communication programs from working with your modem. If you get an
error, consult your modem manual or have the Modem Doctor test your
cable to an external modem with a loopback plug.
2) Lowering RTS signal..waiting for CTS to follow
Dropping RTS Signal to modem
Modem is using RTS/CTS Handshaking properly
Modem is not using RTS/CTS Handshake hold
Raising RTS line
CTS did not follow RTS dropping...usually normal for modems
CTS followed RTS drop...usually normal for serial devices
CTS did not follow RTS raising...you could have a cable problem
CTS followed RTS raise or is set as a permanent ON
- Like DTR/DSR, RTS/CTS handshaking tests check that if the computer
lowers its RTS (Ready to send) line, that the modem responds in kind
and that the CTS (Clear to send) status is echoed to the uart modem
status register. This signal is not as important as the DTR/DSR,
however if you have a high speed modem, this test should pass to
insure proper high-speed transfers.
Carrier and Dynamic tests
---------------------------
1) Sending Carrier Test info to modem
- Commands to self-connect are beings sent to your modem.
2) T1 Loopback commands sent waiting 5 seconds till start of test
- The alternate &T0/&T1 instruction set is being used for self tests.
3) Carrier Detected...waiting 5 seconds to the start of the test
- The RLS (Received line signal) went to an active state or the Modem
Doctor received the words CONNECT from the modem during self-testing.
The 5 second delay is necessary to allow some modems to settle down
for proper reception of characters during self-tests.
Page 46
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
4) Using &T1 Loopback command set to modem for this test
- If you selected the Generic driver and the Modem Doctor failed to
connect, it uses this &T0/&T1 instruction set automatically for its
testing.
5) Sending 20 Characters to the modem
- All Dynamic DTR/DSR and RTS/CTS tests force the modem to self
connect. Next either the DTR or RTS lines are dropped, and 20
characters are sent to the modem. If no characters are received back
to the computer from the modem, then the Modem Doctor reports that
the dynamic handshaking works. If a character is received, then it
means that type of dynamic handshaking does not work.
6) Sending Xoff Signal to modem
- An ASCII character that tells the modem NOT to send data has been
transmitted to the modem for dynamic Xon/Xoff testing.
7) Modem is using Xon/Xoff Handshaking properly
- 20 characters were sent to the modem, and it properly did not send
anything back to the computer.
8) Modem is not using Xon/Xoff Handshake hold
- 20 characters were sent to the modem, but it send them back to the
computer, indicating it did not recognize the dynamic Xon/Xoff
handshake test. Normally most modems do not need this handshake.
9) Sending Xon Signal to the modem
- This restores the modem to proper operation and clears its internal
data buffers.
10) Warning...I can't test this modem because there is no RTS/CTS
signals. If this is an external modem, you may not have a proper
cable or the modem is off. If you have an internal, you might have a
port conflict or a configuration switch set improperly.
- Most times this message is due to an improperly wired cable or a
improper configuration of some modem switches. See your modem manual
for setup, or use a loopback plug and the Analog loopback mode to
test the cable.
11) Setting up the modem for the Originate Mode Carrier Test..please wait
Setting up the modem for the Answer Mode Carrier Test.....please wait
-Self tests commands are being sent to your modem for the
different connect modes and frequencies.
General program warnings
Page 47
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
------------------------
1) Note...you hit the Escape Key during testing. This means the results
of this test is inconclusive. You should run these tests again
without escaping for a valid performance check.
- You can press escape during nearly all tests that the Modem Doctor
runs (except during crucial communication modes between the modem and
computer, in which case as soon as this communication is completed,
the Modem Doctor will escape with this warning.
2) INTERRUPT FAILURE Warning
Note...No interrupts were detected or generated during testing. This
could be due to a failure of your serial port to generate interrupts
or you have selected an IRQ line or Comm assignment in error on the
serial card or in a custom assignment from the Login menu manual
mode. Check your settings and if all is ok, suspect the Uart or
serial port card.
- This warning can be received anytime that the Modem Doctor tries to
talk to a modem or a uart (in analog loopback test). The most common
cause of this problem is an incorrect jumper or comm port assignment
on your modem or serial port. See the section on IRQ's and their
meanings to select the proper IRQ line for your port.
3) Fixed Rate Advisory
Note...I had to lower the baud rate to match the connect rate. What
this means is that you are using a high speed modem with a fixed link
rate in a variable rate mode. You might want to check your DTE/DCE
settings in your modem Nram if this is not desired.
- Most high-speed modems keep the link between the computer and the
modem running at a fixed rate, while the connection between the modem
and the remote modem (bbs or service) operates at another rate. This
method allows data compression and greater throughput (characters per
second) to be received by the computer. If you have a high-speed
modem, check your settings. It is recommended you run in the fixed
link rate whenever possible so you can gain all the benefits of data
compression with the new data protocols.
4) Failure Report
RLS (Received Line Signal Detect) indicates that a carrier has not
been received by the UART. Check modem or connector wiring
- This is an advisory that you might have a cable wired incorrectly
between your computer and external modem or that your modem does not
raise the RLS signal. This is only critical if your communication
programs never display the words "ON-LINE".
5) Modem not responding to the Analog originate test
- Modem never went into the self-test mode.
6) Carrier Not Detected..5 Sec Sync Delay till start of Answer test
Page 48
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
Modem not responding for Analog answer test
- A carrier should have been received by the RLS signal or the words
CONNECT from the modem, if not, the &T0/&T1 instructions are sent and
the test is performed. If the modem does not respond to this test,
then the last message is displayed indicating a problem getting the
modem to self-test itself.
7) RLS Warning
The Received Line Signal of your modem stayed active throughout the
testing. Some modems have a jumper or switch that should be set to
carrier is active only when a signal is detected. Check your manual
to change this setting so the Modem Doctor and comm programs will
work properly. Check your modem to make sure that Carrier isn't
forced high
8) NOTE.Carrier (RLS Line) active, it should not be..test may not be
valid.
- The RLS signal was always active. This means the Modem Doctor
cannot figure out if the modem ever entered the self-test mode. Also,
your communications program probably will always display the "ON-
LINE" status. Unfortunately, this type of situation is the default
setting from the factory of most 2400 bps modems. It can be
reprogrammed by a simple setup command. See your modem manual for
instructions.
9) SET YOUR MODEM TO ORIGINATE CARRIER FREQUENCY...PRESS TO CONTINUE
SET YOUR MODEM TO ANSWER CARRIER FREQUENCY...PRESS TO CONTINUE
- Dumb modem tests require you to flip switches on your modem.
Usually this is the AL button. After you do this, the Modem Doctor
should see a carrier and continue proper testing.
10) Loopback Transmit Error
Loopback Queue Failure
ESCAPE KEY PRESSED....ABORTING ALL LOOPBACK TESTS
UART Control Lines set...waiting 2 seconds for CTS Handshake
NO CTS Handshake Detected .Continuing test even though plug/line
maybe bad
Loopback Queue Failure
UART not responding using Analog Loopback Plug mode
No Loopback Plug or General Failure of the Hardware
Analog Loopback Test passed without any errors
- If the analog loopback did not return characters or generate an
interrupt, then the uart may have been tested without a loopback plug
attached or there is a failure of the uart. If all was ok, a passed
message is displayed.
11) Loopback Transmit Error
UART not responding to the Digital Loopback test
UART Registers did not set for Loop back test
Page 49
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
UART Digital Test passed without any errors
- If no characters were received, then either the uart you are
working with is not 100% 8250-B compatible or defective. If
everything was ok, a passed message is displayed.
12) Warning, Comm Port 1 is using Com Port 2's address.You should
reconfigure your Serial Card to the correct Address.
Otherwise,Communication programs won't properly operate.
13) Warning, Comm Port 2 is using Com Port 1's address.
Do you want me to correct this for testing purposes only? [Y/N]:
- These error messages are received if the Modem Doctor found a Com2
reserved address as Com1, or visa versa. Many PC owners that do not
have built-in serial ports make the mistake of assigning a Com2
address without having a Com1 installed. The ROM-BIOS cannot correct
this problem or even detect it. The Modem Doctor does and will point
out the error to you.
14) Flopping COM1/COM2 pointers in Memory only. Note..this is only valid
till the next warmboot of your system. You must change your serial
card settings to keep this permanent. Note...tests may not work
properly because of this error
- This message is displayed either in the exchange mode or when the
Modem Doctor is asked to fix the problem of addresses in memory for
testing only.
15) Logging out incorrect COM1 for testing purposes.
Logging out incorrect COM2 for testing purposes.
- If you decide not to fix a problem, the incorrect assignment is
logged out of Dos and your choices for testing.
16) ALL Available COMM ports are in use...Press to Return
- If 4 comm ports (shareware) or 8 comm ports (registered) are
already in use, you cannot add any more in the auto-login mode to the
Modem Doctor. Use the manual mode to override your choices for
testing comm ports higher than 8.
17) Comm (x) Not Found ... override ? :
- You told the Modem Doctor in manual mode that a port existed with a
certain base port address. It was not found. If you override, this
address is logged in for testing. This allows you to test a defective
uart chip that might not be recognized by dos or the Modem Doctor as
valid.
18) Sorry...your Modem.dat file has an invalid Comm port
Sorry...I cannot find Modemdr.dat file in this directory
Page 50
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
WARNING...RESERVED PORT ADDRESS in Mdr.dat file
correct address in hex must be between [ ]..ie [2F8]
Sorry...your Modem.dat file has an invalid Speed..using 300 baud
Modem Did not respond to setup string..run the Modem Doctor to check
your modem.
Programming according to file Mdr.dat
Modem Responded to setup string and is ready for use
- Running Modem Doctor in the setup (/s) mode, the file MDR.DAT is
queried for the proper comm port, address, speed and setup string. If
any of this is invalid, one of the messages above is received. If it
is valid you receive the message that Modem Doctor is programming
according to the Mdr.dat file.
19) Standard Assignment Not Verified
When Modem Doctor 5.2 starts, it automatically verifies all comm port
base addresses and IRQ settings. However, some environments may not
tolerate self-testing of IRQ selections. To defeat this setting,
Modem Doctor is started with the /Q switch. When operating in this
mode, Modem Doctor displays the above message next to the IRQ assignments
to indicate that the program has not verified any IRQ assignments.
Page 51
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
Section 6. Special Modes and Information
----------------------------------------
The Modem Doctor supports a wide range of "AT" instruction set modems.
There are however "supersets" of instructions that manufacturers have used
to enhance the capability of their modems. Although there is some
structure in this area, not all commands intermix between different
brands and lines of modems. This situation is analogous to PC computer
printers, and it calls for a similar approach. The Modem Doctor now
supports the use of "Modem Drivers" to meet these special needs.
Additionally, due to the increase in computers using the ISA bus, there
are more interrupt lines free to be used by modem manufacturers. For test
purposes, you can use IRQ3,4,5,7 for your hardware testing. Using the
special /S switch, you can send initialization codes to your modem from a
batch file or other command-line need to setup the modem for use. Finally,
to add some flexibility to the Modem Doctor's diagnostics, some special
"Hot-keys" have been added. These have been discussed above in an
operational sense, however in this section you will get some idea of how
these can help you speed up testing and test defective or non-compatible
hardware.
6.1 Using Modem Drivers
-----------------------
Most Modem's today are built on the original "AT" instruction set that was
developed by Hayes Micromodems in their 1200B series. This driver, named
the Generic Driver in the Modem Doctor, is used exclusively if the modem
returns an ID indicating it is a 300,1200 or 2400 bps modem. Also,
if the modem does not return an ID, this Generic Driver is used. The
Generic Driver can be used to test nearly all modems, however there are
some 2400 bps modems that were built using the command structure that
Hayes Micromodems put into their 2400B line. These modems used an "&" for
some modem setup and command functions. The Modem Doctor has a driver for
these modems called the "&T0/&T1" driver. Using this driver, the Modem
Doctor can perform a simulated carrier test. During your testing of this
type of modem, you will notice the MB (Modem Busy) light flashing on your
external modem. This driver (and all others) is user selectable, however
the Modem Doctor will automatically switch to it when performing the
carrier tests if the Modem was detected to be a 2400 bps modem. The last
driver currently supported is for US Robotics Courier HST and HST
Dual/Standard V.32 Modems. The Modem Doctor recognizes these modems upon
initial testing and sets up its test parameters a certain way to
compensate for their Carrier self test limitations.
Because of the trellis-encoded Async/modulation of the USR HST Mode, the
maximum Carrier test Baud rate is 2400 bps (see the USR Manual for this
info). To work around this, the Modem Doctor Programs these modems to use
a fixed DTE/DCE Rate with the &B1 Parameter, allowing communications to
and from the modem at speeds up to 19200 bps. When working in the V.32
Page 52
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
mode however, the Carrier test (and all loopback tests ) can be performed
at 9600 since the modulation is symmetrical again. Also when the selected
baud rate is higher than 2400 bps, the MNP Protocol switch is set to &M0,
otherwise if there was an error, the Modem would try to correct it instead
of passing the error on to the Modem Doctor. None of these changes is
saved to the non-volatile ROM, so you should not experience a problem.
However, the V.32 and Dual Standard Modems might experience a problem if
register S13 is not set to 1. This is the default from the factory and
insures that the modem will be reset when the DTR line is dropped. If you
are experiencing a problem, use the interactive mode and type S13=001.
This change is not permanent. If you are using a USR Dual Standard Modem,
then the Modem Doctor will test whatever mode is active via the B switch.
If the current Modem setting is B0, then the V.32 mode will be tested, if
B1 is set, then the HST mode will be tested. You can change this setting
to whatever you wish by using the Interactive mode, type ATZ, then type
ATB0 &W or ATB1 &W. This has to be written to the firmware in order to
stay valid throughout all the testing, but the ATZ command before a save
will always recall your settings, insuring you have only changed the one
parameter. Please note, this is included for advanced users and is one of
the reasons for the interactive mode. It is not necessary for you to do
this to test your modem unless you wish to. For more information, see
the section regarding "Quirks". As mentioned above, all of the Modem
Drivers are self- selecting, but can be user-selected. The status line of
your screen will display the current Port assignment, the current Baud
rate, the status of the Microprocessor, and the current modem driver being
used. Select carrier test from the main menu and move the bar to "Select
Modem Commands". You will be given a choice of the available drivers.
After you select, the status line will be updated, and you can either
start the test or return to the main menu. The reason for modem drivers
is to allow more individualized testing of a particular type of modem, and
to allow for more modems to added to the list of specially supported
modems.
6.11 External Modem Drivers
---------------------------
Supported starting with version 4.0 is the ability to read a specially
created external modem driver file. This file makes it possible to handle
any future changes in modems by simply releasing a new driver file. When
the Modem Doctor first begins, it looks in the default directory for the
existence of this driver file. If it exists, a valid checksum is performed
to see that it is indeed a modem driver. If so, this external set of
commands is inserted in place of the internally contained modem drivers.
As of the initial release of 4.0, there are no external driver files in
circulation. Driver files will be released under 2 conditions; first, if a
bug is detected in any of the driver routines, a shareware driver file
will be released on the bulletin boards at no cost. Registered users will
be mailed at no cost the updated driver file. Second, if a registered user
would like a custom modem driver file written, we will create one at
minimal charge as long as proper documentation for the type of modem is
Page 53
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
submitted. If you wish to have an interface written, please contact us for
pricing and appropriate information that we will need to do this for you.
6.2 Using the Command Line Mode switch /S
----------------------------------------
There can be special occasions where you need to initialize and test a
modem before another program can be run. The Modem Doctor now supports a
method to do this. Using the command line switch /S, you can instruct the
Modem Doctor to "wake-up" a Modem and send an initialization string to it.
Although similar to our product Comset, it offers some additional
flexibility but does not allow the serial port only setup that Comset
does. To use this special mode, you need to have a companion file named
MDR.DAT that you create with any ASCII text editor that follows this
format;
1) All information must start on the first space on each line
and can consist of up to 3 lines. Line 1 and Line 2 are
required.
2) Line 1 = Port Number 1 through 8 and an optional port address in
[] ( For settings greater than Port 4, this address is required).
3) Line 2 = the Baud Rate you wish to use (300-56000 or 3-560 are
acceptable).
4) Line 3 = the initialization string you wish to send. This string
must start with AT and can be up to 80 characters long. If no string
is included in the file, or if it does not begin with the letters AT,
then ATZ is automatically sent to the modem.
Example..to setup Port 2 to 19200 and set S7 to 255;
Make a file called MDR.DAT that looks like this;
2 [2F8]<--note for Port 1-4 unless it is non-standard [2F8]
is not needed
192
AT S7= 255
Next, start the Modem Doctor by typing MDR /S. As long as the
MDR.DAT file is in the current working directory, these commands will
be sent. If not, you will get an error message stating that MDR.DAT
could not be found.
Why not have the Modem Doctor search all directories for the file?
Well, the reason is so that you can put MDR.EXE in a Dos path but
have individualized setup MDR.DAT files in different subdirectories
for different programming needs. Instead of constantly changing the
file, make different ones and call MDR.EXE. It will only use the
Page 54
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
MDR.DAT file in the current working directory.
Page 55
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
After the initialization string is sent, the Modem Doctor will wait
up to 10 seconds for the word "OK" to return from the modem. If it
does not, you will get a message saying the modem failed to setup. In
either case, whatever your modem sent to the Modem Doctor will be
displayed. If you see the word "ERROR", that was sent from the modem,
it probably means that your initialization string was not correct. No
message returning could indicate a problem with the modem, or an
invalid baud rate. When it finishes executing, the Modem Doctor
returns an errorlevel to the calling program. An errorlevel of 0 is
normal, an errorlevel of 99 indicates a failure. You can use these
errorlevels to control batch processes if you wish to.
Also, this mode of the Modem Doctor uses bios screen writes, so all
of the information displayed can be redirected to a printer, a file,
or whatever other DOS device you wish. Example...to send the output
of this test to a file called Test.txt...
MDR /S > TEST.TXT or MDR /S >> TEST.TXT (if you wish to
append an existing Test.txt file.
If the Modem Doctor setup was successful, the modem's DTR and RTS lines
stay active, if not, they are dropped. If you need more specialized
command-line modes of operation, you might consider Comset. Comset allows
Serial Ports and Modems to be setup at various rates and under various
conditions. Registered Modem Doctor users get a 15% discount! You can
find Comset on most BBS's as COMSET7.ZIP.
6.3 Using the Hot-Keys
----------------------
Hot-Keys are combinations of the ALT key plus a letter. The Modem Doctor
adds several of these Hot-keys to make it easier to test modems at
different baud rates and to circumvent some of the error checking that
the program performs under normal circumstances.
ALT-B Change Baud rate -
If you are testing a system that you suspect has a problem, it is best to
use the setup mode when changing the baud rate. The Setup mode will test
all the registers, and the modem microprocessor (if selected) and assure
you that all the hardware is communicating properly at each baud rate.
However, if you feel a system is running fine, using the ALT-B from the
main menu can save time when running tests at different baud rates. Press
ALT-B and select the baud rate (taking care not to select a rate higher
that what your modem is rated for if you are doing modem tests). ALT-B
works from the main menu, and from inside the Manual interactive mode.
ALT-C Clear Screen -
This key is only active inside of the Manual interactive mode and is used
to clear the text window of any characters.
Page 56
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
ALT-F Force Microprocessor on-line -
The Modem Doctor has many tests built-in to verify the working condition
of a microprocessor-based modem and will not allow a modem to be tested in
the "AT" instruction set mode if it has not properly addressed and setup a
modem microprocessor. Using the ALT-F combination forces the Modem Doctor
to perform tests as if it had properly setup a modem. This feature should
be used with care, however its primary benefit is to help you test a
malfunctioning modem to see exactly what commands it will respond to.
Pressing ALT-F also updates the status bar to indicate that the modem
microprocessor is on-line (which may or may not be the case after this
command was issued). Version 4.0 of Modem Doctor makes this hot-key a
toggle, so pressing 1 time will change the on-line status. Pressing again
returns it back to normal.
ALT-H Help -
You can press this key at any time to get help on a topic or general help
depending on if you are in a menu or at the main menu selection bar.
ALT-R Register Display -
This is only active inside of the Manual interactive mode and is used to
display the status of all Uart registers on the screen for diagnostic
purposes.
ALT-X Exit Mode -
This is only active inside of the Manual interactive mode and is used to
exit this mode.
Control -Break
--------------
This allows an immediate exit from anywhere permissible inside the Modem
Doctor, however it offers you a choice to clean up or to continue. You
should not use this mode, it is better to exit via the Main menu
selection.
6.4 Logging in Defective Ports
------------------------------
If a serial port Uart is defective, the Modem Doctor will refuse to log it
in for testing. This is necessary because there is no way for it to know
what ports are defective and what are non-existent. However in Version
4.0, you can now log-in a defective chip for testing. The procedure to do
so is explained above under Manual Login. The reason for doing so however
might not have been apparent. If any register of a serial port is
defective, it might not function properly. Logging in this defective port
will give you the full benefit of the Uart and Serial port diagnostics.
Error messages will be displayed, in most cases there will be multiple
error messages. There are two possible causes of a defective port; the
Uart chip and the Serial Port address system. If it is a chip, simply
replacing the chip fixes the problem. If it is a serial port instead, then
Page 57
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
the same problem will repeat. How do you approach this? Well for starters,
check that the strapping on your serial port board matches the correct
COMM port assignment (ie strapped for COM1 for COM1..etc). Next, if there
is user selectable IRQ assignments, make sure it again matches the COMM
port assignment (IRQ4 for COM1/3, IRQ3 for COM2/4, IRQ5 for COM7/8, IRQ7
for COM6/7). If all this is set properly, then you can suspect the chip,
but also the Serial Port hardware that gates the address of the chip to
the computer. Finally, if you get warnings about status, but the chip logs
in, then you might just have a bad cable from the computer to the modem
(NOTE: The Modem Doctor does not consider this an error but simply
displays a warning and allows the Uart to be logged-in for use).
Page 58
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
6.5 What tests cannot Do
------------------------
Although I tried to be extremely thorough in my tests, there are
somethings that tests just cannot do or pinpoint. If you are having
problems with excessive line-noise, you might have a bad connection
between your modem and your telephone wiring in the house. Another
possibility, although remote, is that your modem does not offer the
correct input impedance to the telephone line. This can cause poor
connections. The problem is with the electronic design of the modem, and
again, it is more prevalent in inexpensive modems. Also, tests cannot
check that the communications program you are using is set up correctly.
At times, installing a communications package can be very challenging for
a novice user. Tests also cannot check the wiring in your serial Cable.
The Modem Doctor will tell you if a handshaking pair is missing, but it
cant tell you why. It could be because the Uart is bad, but more than
likely, your RS-232 Cable doesn't carry all of the handshaking signals to
or from the external modem or serial device. This can be important if you
are using a high-speed modem. Most High-speed modems will drop the CTS
line when their communication buffers are full. Previous Modems ignored
the RTS/CTS signals and instead used the DTR/DCE pair. What this means is
that if you buy a new modem, it might not work with the older-cable (yet
at the same time the older modem will work..which might lead you to
believe that you have a defective modem).
6.6 Quirks with Some Modems
---------------------------
Carrier tests -
Some Modems have two "AT" instruction sets, usually referred to as
Compatible and Enhanced. If your modem does not perform a carrier test at
speeds below 4800, then this is usually the case. Some modems provide a
dip-switch or a toggle switch to select either mode. Setting your modem to
the Standard Compatible Mode should get rid of your problems below 4800
bps. Also, make sure you select the Generic Compatible Modem Driver unless
you are sure your modem matches the modem's that have special drivers
written especially for their use. At speeds above 4800 bps, the Modem
Doctor is only compatible with USR V.32, Dual Standards (V.32 and HST) and
HST brand of modems, Hayes V9600 and Ultra 9600, and Courier 2400 modems.
If you wish to test another brand of modem that is not compatible, simply
turn off any modem-hardware error correcting using the Manual mode and
following the information in your modem users manual. Then select the
Generic Modem Driver and you should be able to test your modem properly.
Finally, if only one of the tests (Originate or Answer) runs and NO
CARRIER is displayed for the other, the problem lies with the Enhanced
Command settings of your modem. Hayes Modems use &T1 through &T8 commands
for their 2400 and also have other special switches. The &T0 command set
is tried by this version of the Modem Doctor automatically, however there
is no compensation for any other type of modems that use non-standard
Page 59
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
commands. Again for the sake of compatibility with the widest range of
modems at speeds below 4800, this cannot be corrected for in this version.
Considering the vast numbers of "AT" compatible modems in the marketplace,
these two exceptions are minor and will not affect most users. Finally,
users of 8250 compatible Uarts that do not support the Digital (Chip)
Loopback will get an error. This should be of no concern. However if the
test runs for a while, then fails, it could indicate a problem with your
Uart. This is explained in the pull-down window in the program. The Modem
Doctor has been tested on about 25 Modems from Major Manufacturers and on
a variety of Clones and Compatibles (plus the "Real Thing"). It is
possible that a certain combination of hardware still might give problems,
however if you are a registered user, I will find a way to make it work.
6.7 Buffered vs Direct Connect Modems
-------------------------------------
When testing high speed modems, you should note that some of them cannot
test in the a "buffered mode", which means that they will not be able to
self-test in carrier mode above speeds of 9600. The Hayes Ultra's fall into
this category. The higest DTE/DCE rate you can use and still generate a
successful carrier test is 9600 bps. Any higher DTE rate will cause Modem
Doctor to return errors that are not valid.
Section 7. Benefits of Registration
------------------------------------
Thank you for your registration. The Current Registered Version # of the
Modem Doctor is 4.0R. All Registered Users are entitled to free
Maintenance updates and these will be reflected by changes in the decimal
fraction number..ie 4.01, 4.02. Also, if a new super-duper version comes
out (5.X or 6.X), all registered users will be able to update for only $7
(plus shipping,handling and tax where applicable). Currently registered
users of version 2 and 3 can update for $5 (plus shipping, handling and
tax where applicable). If you have trouble with the Modem Doctor, or
questions, feel free to call or write. When doing either you will need to
have the Version Number, your serial number, and in some cases the Module
Identification Number. The Version number is displayed when you first
start the program along with the serial Number. The Module Identification
numbers can be displayed at any time from the main menu after you pass the
initial setup mode. Simply type a # sign, and all of the modules that make
up the Modem Doctor will display their version numbers on the screen.
Right now, all Modules have identical version numbers from program to
program, but in the future, there could be custom modules for registered
users, so in this case the Module ID could become important. You can reach
us with your questions at 410-256-5767 or write to ;
Hank Volpe
PO Box 43214
Baltimore MD 21236
Thanks again for registering the Modem Doctor.
Page 60
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
You can always download the latest shareware version and other communication
utilities from the Modem Doctor BBS at 410-256-3631 (300/1200/2400/9600 HST
[soon V.32bis]). Also, if you write your questions on the BBS, you will get a
faster response than if you had written via the mail.
Notes - [+] References to USR /Courier/Dual Standard/HST
Copyrighted by US Robotics
[++] References to AT Instruction Set ,Smartmodem,Hayes
Copyrighted by Hayes Inc.
References to MNP refer to An error free protocol
Copyrighted by Microcom Inc.
References to dos, microsoft, copyrighted by IBM or Microsoft
References to 8250B or other uarts are copyrighted by a
variety of manufacturers including (but not limited to )
Intel, National Semiconductor.
Disclaimer -
It is not the intent of the author to recommend any brand of modem over
another nor to infringe on the copyrights of the manufacturers by
mentioning their products. A modem fits a need, and whatever one works for
you is the one you should have. As time goes on, more modems will be added
to the list of "special enhanced " tests. The modems mentioned are done so
only because of the popularity they enjoy and for no other reason. All
programming of modems for testing is done with simple character strings,
similar to any type of data that can be sent to a modem or a serial port.
Any modem, whether AT compatible or not, can be handled by the Modem
Doctor with special software drivers. These software drivers will be
distributed free of charge as needed for general use. Custom drivers
created by Hank Volpe for particular clients however will require a fee
for handling and programming time.
Page 61
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
Modem Doctor History
Ver 5.2 - The /Q switch was added to the command line interface to
allow for the user to bypass the IRQ self-tests. Some
computer environments may freeze when self-tests of
IRQ lines are performed. In this case, running with the
/Q switch will bypass these tests. No other changes
were made to the program.
Ver 5.1 - Program was recompiled to remove Borland C++ optimizations
which were found to cause STACK problems running under
Digital Research's DR/DOS 6.0. No other changes were
made to the program.
Ver 5.0 - New tests added to verify IRQ operation, verify proper
Comm port/IRQ selection, added NULL tests to Interactive
selection. Structure changed for drivers to include
handling all modem identification codes. All window
routines changed to directly drive displays (vs working
through standard C library interfaces), S-register window
display added to REGS menu, intefaces added to handle
generic INT14 and FOSSIL drivers, bypassing all direct
control of hardware while in that mode.
Other updates include identification of mouse drivers
and re-activation upon exit, ability to handle accurate
timing loops on machines with a system speed of 50mhz+,
addition of interrupt driven transmit routines. Addition
of 5 new uart internal tests.
Ver 4.0 - New tests added for dynamic handshaking and static
handshaking. New report generator features, new
exchange mode. Higher baud rates, cleaner windows that
grow to meet commands. Recognition of mouse inputs via
a compatible mouse driver. Expansion of internal modem
drivers and ability to read external modem drivers.
Improved brute-force reading for faster digital
loopback tests. Automatic aborting of modem tests when
IRQ failures are detected. New advisories for fixed-
link rate, IRQ failures, wrong comm port assignments,
swapped comm port assignments. Addition of custom
color selections, pulldown windows that stay when
left-right arrow keys are moved. Updating of 16550 AN
support for resetting and clearing buffers.
Replacement of all internal comm drivers with new dos
independent routines. Correction of many (and
hopefully all) spelling errors.
Page 62
Modem Doctor 5.2 Technical Reference Manual Copyright 1993 Hank Volpe
Ver 3.0 - New tests added for 16450/16550/16550AN Uarts.
Improved Control-Abort handling, Regs command now
performs a full diagnostic call when activated.
Hot-Keys added (Force Micro, Baud Rate Select).
Modem Driver software added to program, Status Bar
added to program. Support for IRQ 3,4,5,7 added
via COM1 through COM8 log-ins. Speed increased to
38.4KB. /S Command line option added for setup of
a modem including batch file errorlevel support.
Escape key functionality added to Carrier Tests
and the loopback tests.
Ver 2.2 - Corrects a bug in Ver 2.1 Communication routines
that caused some modems to lock-out because they
were waiting for two carriage returns to begin.
Also it added 4 diagnostic Uart tests
Ver 2.1 - This version was a Beta test. A Beta tester
accidentally uploaded this to several boards.
Please remove all Ver 2.1S software that you may
find.
Ver 2.0 - This version also was a Beta test with support
for COM1-2 and 2400 bps maximum
Ver 1.0 - First test version
Page 63